nunit - 在.net core 2.2项目运行 "workers"时如何将 "dotnet test"参数传递给nunit runner

标签 nunit .net-core-2.2 dotnet-test

目前,对于我们的 selenium UI 测试,我们正在读取可用的 selenium 服务器浏览器来决定我们将运行测试的线程数,并在启动 nunit 控制台运行程序时传递“workers”参数。

我现在正在将我们的自动化迁移到 .net core。不幸的是,nunit 控制台尚不支持 .net core,我们现在使用“dotnet test”命令来运行测试,该命令仍然运行 nunit 测试。

我搜索了很多,但找不到如何将“workers”参数传递给nunit?还有其他用于线程“dotnet test”的参数,但它们不允许您运行多于 CPU 核心数的线程。请注意,我不想对 assemblyInfo 中的线程数进行硬编码,因为我们经常在每次运行中使用不同数量的线程,具体取决于运行测试的 selenium 服务器。

我在运行测试命令时尝试使用 .runsettings 设置文件,但似乎也没有检测到该参数。我最终得到的是一个测试运行,线程数等于机器上的 cpu 核心数,但我需要比这更多的线程。

版本:

  • .net核心2.2
  • NUnit 3.11
  • NUnit3TestAdapter 3.12

最佳答案

根据https://github.com/nunit/docs/wiki/Tips-And-Tricks#NumberOfTestWorkers您可以使用设置 NumberOfTestWorkers 来设置工作人员数量。

您可以通过两种方式完成此操作:在 .runsetting 文件中设置并使用 --settings 选项传递它,或者您可以在命令行中的“--”分隔符之后传递键值对。

dotnet test Project.csproj -- NUnit.NumberOfTestWorkers=10

I tried using the .runsettings settings file when running the test command, but it seemed the parameter was not detected there too.

要使其正常工作,您只需检查您的项目是否引用 NUnit3TestAdapter 并且您的 .runsettings 文件具有像这样的正确结构。

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
    <NUnit>
        <NumberOfTestWorkers>10</NumberOfTestWorkers>
    </NUnit>
</RunSettings>

关于nunit - 在.net core 2.2项目运行 "workers"时如何将 "dotnet test"参数传递给nunit runner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54881733/

相关文章:

c# - 将数组作为属性值传递

unit-testing - 在 Azure DevOps 中发布测试结果时如何包含 NUnit 测试输出?

c# - 集成测试 .NET Code 2.2 IHostBuilder (Generic Host Builder)

swashbuckle - Swagger/Swashbuckle 错误 - 无法呈现此定义

.net - “dotnet test”未在 gitlab-runner 管道中找到 nunit 测试

.net - NUnit 中的 EqualTo() 和 EquivalentTo() 有什么区别?

asp.net-mvc - 计划每晚构建 msbuild 任务

iis - .NET Core/Kestrel 应用程序无故关闭

continuous-integration - 如何使用自定义 NuGet 提要在 VSTS 上运行 dotnet 测试?

powershell - 为什么 dotnet 测试工具没有创建代码覆盖率报告?