C# Nunit Selenium使用值进行并行测试
我试图用不同的值并行运行相同的nunit测试方法。然而,第二个测试似乎失败了(我认为它试图使用浏览器的第一个实例 这就是考验C# Nunit Selenium使用值进行并行测试,c#,selenium-webdriver,automated-tests,nunit,C#,Selenium Webdriver,Automated Tests,Nunit,我试图用不同的值并行运行相同的nunit测试方法。然而,第二个测试似乎失败了(我认为它试图使用浏览器的第一个实例 这就是考验 namespace AutomationProject.Login_Test_Cases { [TestFixture] [Parallelizable(ParallelScope.Children)] class Login_Test_Cases: BaseTest { [Test] public v
namespace AutomationProject.Login_Test_Cases
{
[TestFixture]
[Parallelizable(ParallelScope.Children)]
class Login_Test_Cases: BaseTest
{
[Test]
public void LoginPar([Values("skynet" ,"skynet2")] string username)
{
lg.Log_In(username, "password");
}
}
}
这是设置浏览器的baseTest
namespace AutomationProject.BaseClasses
{
public class BaseTest
{
public Log_In_Methods lg;
public IWebDriver driver;
[SetUp]
public void StartBrowser()
{
System.Diagnostics.Trace.AutoFlush = true;
ChromeOptions options = new ChromeOptions();
options.AddAdditionalCapability("useAutomationExtension", false);
driver = new ChromeDriver(//path to chrome driver);
lg = new Log_In_Methods(driver);
driver.Manage().Window.Maximize();
driver.Url = "http://login-test.com";
}
我还添加了[assembly:Parallelizable(ParallelScope.Children)]
[assembly:LevelOfParallelism(2)]到AssemblyInfo
第二个测试似乎总是失败(浏览器甚至无法获取url)
我可以并行运行不同的类和测试,没有问题
有人知道是否有可能用不同的值并行运行相同的测试方法吗
有人知道是否有可能用不同的值并行运行相同的测试方法吗
这是绝对可能的。这里的问题是两个测试在BaseTest类的单个实例上并行运行,因此您只有一个lg
字段,这两个测试都试图同时创建/使用该字段
能够使用两个单独的BaseTest
对象运行两个单独的测试是一个开放的功能请求,请参见此处:
同时,如果您要在测试方法中包含
[SetUp]
逻辑并使用局部变量,那么您所尝试的应该是可行的。将StartBrowser()方法调用到Login\u test\u Cases类谢谢,但恐怕运气不好。我尝试删除[SetUp]注释并调用StartBrowser()但是第二个测试仍然失败,如上所述。谢谢,在[test]逻辑中添加局部变量(创建驱动程序和页面)起了作用。很抱歉,我没有足够的代表对此进行投票