【问题标题】:How to pass "workers" parameter to nunit runner when running "dotnet test" for a .net core 2.2 project为.net core 2.2项目运行“dotnet test”时如何将“workers”参数传递给nunit runner
【发布时间】:2019-02-26 09:01:22
【问题描述】:

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

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

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

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

版本:

  • .net core 2.2
  • NUnit 3.11
  • NUnit3TestAdapter 3.12

【问题讨论】:

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


    【解决方案1】:

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

    您可以通过两种方式做到这一点:在 .runsetting 文件中设置它并使用 --settings 选项传递它,或者您可以在“--”分隔符之后直接在命令行中传递键值对。

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

    我在运行测试命令时尝试使用 .runsettings 设置文件,但那里似乎也没有检测到该参数。

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

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

    【讨论】:

      猜你喜欢
      • 2019-08-28
      • 2013-04-19
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 2019-03-15
      • 2019-05-26
      相关资源
      最近更新 更多