【发布时间】:2019-05-26 02:21:40
【问题描述】:
我正在使用单个命令从解决方案级别运行所有测试项目:
dotnet test 如何让所有测试项目(程序集)并行运行?
在 Visual Studio 中,有一个简单的“并行运行测试”按钮,效果很好,但我需要对 CI 使用 dotnet core test 命令。
【问题讨论】:
标签: .net testing .net-core xunit xunit2
我正在使用单个命令从解决方案级别运行所有测试项目:
dotnet test 如何让所有测试项目(程序集)并行运行?
在 Visual Studio 中,有一个简单的“并行运行测试”按钮,效果很好,但我需要对 CI 使用 dotnet core test 命令。
【问题讨论】:
标签: .net testing .net-core xunit xunit2
目前不支持将标志传递给dotnet test 的方式。您必须改用configuration files。
xunit.runner.json:
{
"parallelizeAssembly": true
}
parallelizeAssembly 默认为false
如果此程序集愿意参与与其他程序集的并行化,请将此设置为 true。如果所有程序集都同意,测试运行者可以使用此信息自动启用跨程序集的并行化。
parallelizeTestCollections 默认为true
如果程序集愿意在此程序集中彼此并行运行测试,则将此设置为 true。同一测试集合中的测试将按顺序相互对照运行,但不同测试集合中的测试将相互并行运行。将此设置为 false 以禁用此测试程序集中的所有并行化。
【讨论】:
dotnet test -- xunit.parallelizeAssembly=true。来源github.com/Microsoft/vstest/issues/631
xunit.runner.json中设置"maxParallelThreads": -1来坚持单线程文件或通过相应的命令行命令。