我想并行执行多个测试,这是一些代码。我正在使用Post方法,但是这种方法不起作用,有人可以帮助我吗?
namespace BusinessLayer.BusinessLogic.UI
{
[TestFixture]
[Parallelizable]
public class nunitlayer : BaseLayer
{
[Test]
public static void test1(IWebDriver driver, WebDriverWait wait, int urlTypeId)
{
LoginLayer.LoginTest(driver, wait, urlTypeId);
}
[Test]
public static void test2(IWebDriver driver, WebDriverWait wait, int urlTypeId)
{
LoginLayer.ArmenianLoginTest(driver, wait, urlTypeId);
}
}
}
case (int)TestType.nunit:
nunitlayer.test1(chrome.driver, chrome.wait, urlTypeId);
break;
答案 0 :(得分:0)
您在测试治具类[Parallelizable]
上有nunitlayer
。这意味着它将与也具有[Parallelizable]
的其他灯具并行运行。
如果希望nunitlayer
中的测试彼此并行运行,则应执行以下操作之一:
将[Parallelizable]
放在每个测试上,而不是放在夹具上...
namespace BusinessLayer.BusinessLogic.UI
{
[TestFixture]
public class nunitlayer : BaseLayer
{
[Parallelizable]
[Test]
public static void test1(IWebDriver driver, WebDriverWait wait, int urlTypeId)
{
LoginLayer.LoginTest(driver, wait, urlTypeId);
}
[Test]
[Parallelizable]
public static void test2(IWebDriver driver, WebDriverWait wait, int urlTypeId)
{
LoginLayer.ArmenianLoginTest(driver, wait, urlTypeId);
}
}
}
将[Parallelizable(ParallelScope.Children)]
放在灯具上...
namespace BusinessLayer.BusinessLogic.UI
{
[TestFixture]
[Parallelizable(ParallelScope.Children)]
public class nunitlayer : BaseLayer
{
[Test]
public static void test1(IWebDriver driver, WebDriverWait wait, int urlTypeId)
{
LoginLayer.LoginTest(driver, wait, urlTypeId);
}
[Test]
public static void test2(IWebDriver driver, WebDriverWait wait, int urlTypeId)
{
LoginLayer.ArmenianLoginTest(driver, wait, urlTypeId);
}
}
}
这两种方法都可以使测试并行运行,但是不能保证它们可以正常运行。您尚未显示测试方法参数的数据来自何处。您显示了一个case语句,其中似乎调用了nunit测试,但这不是正常运行NUnit测试的方式,并且我们不知道每个测试是否都(例如)获得了唯一的驱动程序。 IOW,还有很多其他地方可能出错,我怀疑您尚未共享有关如何运行测试的许多信息。