【问题标题】:"dotnet test": how to run xunit tests projects in parallel?“dotnet test”:如何并行运行 xunit 测试项目?
【发布时间】:2019-05-26 02:21:40
【问题描述】:

我正在使用单个命令从解决方案级别运行所有测试项目: dotnet test 如何让所有测试项目(程序集)并行运行?

在 Visual Studio 中,有一个简单的“并行运行测试”按钮,效果很好,但我需要对 CI 使用 dotnet core test 命令。

【问题讨论】:

    标签: .net testing .net-core xunit xunit2


    【解决方案1】:

    目前不支持将标志传递给dotnet test 的方式。您必须改用configuration files

    xunit.runner.json:

    {
        "parallelizeAssembly": true
    }
    

    parallelizeAssembly 默认为false

    如果此程序集愿意参与与其他程序集的并行化,请将此设置为 true。如果所有程序集都同意,测试运行者可以使用此信息自动启用跨程序集的并行化。

    parallelizeTestCollections 默认为true

    如果程序集愿意在此程序集中彼此并行运行测试,则将此设置为 true。同一测试集合中的测试将按顺序相互对照运行,但不同测试集合中的测试将相互并行运行。将此设置为 false 以禁用此测试程序集中的所有并行化。

    【讨论】:

    • 谢谢,我以前一直在尝试这种方式,但错过了“如果更新选项则复制”。希望它与 Visual Studio 中的“并行运行选项”一样有效。 :)
    • 试用:dotnet test -- xunit.parallelizeAssembly=true。来源github.com/Microsoft/vstest/issues/631
    • @daniherrera 有什么方法可以让我轻松查看到目前为止已加载哪些测试?我发誓这并没有按照记录的方式工作。我一一手动运行测试,它们通过了。我一次运行所有测试,它们都失败了。测试不是线程安全的,所以这是有道理的。我正在使用 xunit 理论。
    • 注意,如果你使用fixtures测试运行器不能并行运行测试(猜这是一个bug),所以你必须通过在xunit.runner.json中设置"maxParallelThreads": -1来坚持单线程文件或通过相应的命令行命令。
    • @daniherrera,xunit没有这样的语法,只支持xunit.runner.json,见ref from xunit author
    猜你喜欢
    • 2020-11-05
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    相关资源
    最近更新 更多