繁体   English   中英

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

[英]How to run NUnit tests in parallel from command line?

我的 NUnit 测试是用 C# 编写的,它是使用 .net 核心 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

命令行中的任何内容都必须传递给 NUnit。 NUnit 允许使用传入的 arguments 来限制并行性,但它不允许运行器强制并行运行。

如果你仔细想想,那是合乎逻辑的。

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

所以在测试中你可以告诉 NUnit 它是否能够并行运行所有或部分测试。 理论上,NUnit 可能会并行运行它们,但实际上,如果可能的话,它会并行运行测试,直到指定的并行测试工作者限制。 该限制可以在程序集级别使用属性指定,也可以由运行程序指定。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM