2

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

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

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

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

版本:

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

1 回答 1

3

根据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-09-18T19:30:25.063 回答