我是C#的新手,我无法使驱动程序线程安全。一旦第二个浏览器打开,我就可以打开这两个浏览器,第一个驱动程序将失去它的引用。如何使用Nunit,C#-ThreadSafe驱动程序在单个类中运行并行测试方法
下面是我的代码有三个类
namespace TestAutomation{
[TestFixture]
[Parallelizable(ParallelScope.Children)]
public class UnitTest1 : Setup
{
[Test, Property("TestCaseID","123")]
public void TestMethod1(this IWebDriver driver1)
{
driver1.Navigate().GoToUrl("https://www.google.com");
driver1.FindElement(By.Name("q")).SendKeys("test1");
Thread.Sleep(10000);
}
[Test, Property("TestCaseID", "234")]
public void TestMethod2()
{
driver.Navigate().GoToUrl("https://www.google.com");
driver.FindElement(By.Name("q")).SendKeys("test2");
Thread.Sleep(15000);
}
}}
设置类
namespace TestAutomation{
public class Setup:WebDriverManager
{
[SetUp]
public void setupBrowser()
{
driver = new ChromeDriver("C:\\Users\\Downloads\\chromedriver_win32");
}
[TearDown]
public void CloseBrowser()
{
driver.Close();
driver.Quit();
// driver.Close();
//driver.Quit;
}
}}
Webdrivermanager
namespace TestAutomation{
public class WebDriverManager
{
public IWebDriver driver { get; set; }
}
}
我期待像ThreadLocal的injava一个解决方案,我可以得到和在设置方法中为每个线程设置驱动程序
真的,但我要运行的测试并行这是我的项目需求。所以不可能并行运行测试用例?使所有测试用例平行运行并且驱动程序线程安全的其他选择? – user1
然后使用我的第一个建议。由于您有两个不同的“当前”驱动程序,请停止使用公共属性来存储当前驱动程序。 – Charlie