我正在使用NUnit 3.12.0和NUnit3TestAdapter 3.16.1。
曾尝试在网上搜索,但没有得到明确的答案,我们是否可以使用NUnit和NUnit3TestAdapter以特定顺序或优先级运行测试?
假设我有5种方法[说A,B,C,D和E],它们带有标签[],我想以B,C,E,A和D的顺序/优先级运行它。
[请建议我们是否可以像在testNG中那样使用任何特定标签来描述顺序或优先级,例如
@Test(priority = 1)
NUnit支持OrderAttribute
,您可以使用它宽松地控制类中测试方法的顺序。对于您的示例,您可以编写:
[Test, Order(4)]
public void A() { }
[Test, Order(1)]
public void B() { }
[Test, Order(2)]
public void C() { }
[Test, Order(5)]
public void D() { }
[Test, Order(3)]
public void E() { }
一些注意事项:
我在上面“松散地写了”,因为该属性控制测试开始的顺序。没有依赖关系。也就是说,在并行执行的情况下,测试E在运行之前不会等待测试B和C完成。当然,如果您不启用并行执行,那么它将look like E取决于A和B,因此您需要记住并非如此,或者(如果您确实需要真正的依赖关系, ),将您使用Order属性的类标记为NonParallelizable。
同一类中的任何测试无在使用该属性进行所有测试之后,将启动OrderAttribute。
请参阅NUnit文档以获取有关Order属性的更多信息。