【问题标题】:How to run NUnit tests in parallel from command line?如何从命令行并行运行 NUnit 测试?
【发布时间】:2020-06-15 11:49:11
【问题描述】:

我的 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

【问题讨论】:

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


    【解决方案1】:

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

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

    属性为[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 了解您可以使用的设置列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-03
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多