如何从命令行并行运行NUnit测试?

时间:2020-06-15 11:49:11

标签: c# .net .net-core nunit nunit-3.0

我的NUnit测试是用C#编写的,它是使用.net core 3.1构建的。我正在尝试并行运行其中的测试。我知道我可以像这样[Parallelizable(ParallelScope.Fixtures)]在灯具级别设置Parallelizable属性。但是,那不是我想要的。我想使用“ dotnet test”从命令行运行测试。

所以,我只是检查是否有任何方式可以运行

   dotnet test --parallel FullyQualifiedName~NUnitNamespace.UnitTest1

   dotnet test --parallel C:\NUnitTestDemo\bin\Debug\netcoreapp3.1\testproject.dll

1 个答案:

答案 0 :(得分:0)

命令行中的任何内容都必须传递给NUnit。 NUnit允许使用传入的参数限制并行性,但不允许跑步者强制并行运行。

考虑一下,那是合乎逻辑的。

该属性为[Parallelizable],其中“ IZABLE”表示“有能力”。测试作者使用该属性来告诉NUnit 能够进行并行测试。没有这种保证,NUnit无法知道测试是否足够独立于其他测试而不会出错或误报。

因此,在测试中,您可以告诉NUnit是否能够并行运行全部或部分测试。从理论上讲,NUnit可以并行运行,也可以不并行运行,但实际上,如果可以并行运行测试,并达到并行测试工作程序的指定限制。可以使用装配级别的属性或运行程序来指定该限制。

如果使用NUnit控制台运行程序运行,则使用--workers选项设置限制。使用dotnet测试时,需要使用.runsettings设置在NumberOfTestworkers文件中进行指定。要完全抑制并行性,请使用0值。值为1可以抑制大多数并行性,但是如果其中一个在STA中而一个在MTA中,则仍然可以同时运行测试。

有关可以使用的设置列表,请参见https://github.com/nunit/docs/wiki/Tips-And-Tricks

相关问题