IT *_*DAV 5 c# parallel-processing nunit initialization xunit
这是我想用 xUnit 实现的目标:
我已经尝试过这里描述的[CollectionDefinition]/[Collection]/ICollectionFixture 方法,但它禁用了并行执行,这对我来说至关重要。
有没有办法并行运行测试并能够在 xUnit 中编写全局设置/拆卸代码?
如果 xUnit 无法实现,NUnit 或 MSUnit 是否支持这种情况?
NUnit 支持这种情况。对于全局设置,请在根命名空间之一中创建一个类并向其添加[SetupFixture]属性。然后向该类添加[OneTimeSetUp]方法。该方法将针对该命名空间和子命名空间中的所有测试运行一次。这允许您拥有额外的特定于命名空间的一次性设置。
[SetUpFixture]
public class MySetUpClass
{
[OneTimeSetUp]
public void RunBeforeAnyTests()
{
// ...
}
[OneTimeTearDown]
public void RunAfterAnyTests()
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
然后,要并行运行测试,请在程序集级别使用ParallelScope.All. 如果您的测试不应与其他测试并行运行,则可以NonParallelizable在较低级别使用该属性。
[assembly: Parallelizable(ParallelScope.All)]
NUnit 3.7 及更高版本支持在 NUnit 中并行运行测试方法。在此之前,它仅支持并行运行测试类。我建议使用最新版本的 NUnit 开始任何项目,以利用错误修复、新功能和改进。