我正在尝试并行运行具有不同值的相同nunit Test方法。但是第二项测试似乎失败了(我认为它正在尝试使用浏览器的第一个实例;
这是测试;
storage = double
worker.storage = storage
这是设置浏览器的baseTest;
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");
}
}
}
我还添加了[assembly:Parallelizable(ParallelScope.Children)] [assembly:LevelOfParallelism(2)]到AssemblyInfo
第二项测试似乎总是失败(浏览器甚至无法获取网址)
我可以并行运行不同的类和测试,而不会出现任何问题。
有人知道是否可以并行运行具有不同值的相同测试方法吗?
答案 0 :(得分:1)
有人知道是否可以并行运行具有不同值的相同测试方法吗?
这是绝对可能的。这里的问题是,两个测试都在BaseTest类的单个实例上并行运行,因此,您只有一个lg
字段,两个测试都试图同时创建/使用。
能够使用两个单独的BaseTest
对象运行两个单独的测试是一项开放功能请求,请参见此处:https://github.com/nunit/nunit/issues/2574
同时,如果要将[SetUp]
逻辑包含在测试方法中并使用局部变量,则您尝试执行的操作应该会起作用。