首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NUnit控制台运行器运行文件夹下的所有测试

使用NUnit控制台运行器运行文件夹下的所有测试
EN

Stack Overflow用户
提问于 2015-12-21 20:19:51
回答 4查看 12.6K关注 0票数 9

我正在尝试使用NUnit Runners 2.6.4来运行我的测试文件夹中的所有测试程序集。我当前的命令如下所示:

代码语言:javascript
复制
/nologo /noshadow /framework:net-4.0 /xml:.\test\TestResults.xml .\test\*.Test.dll

不幸的是,Nunit只是在路径中抛出了一个System.ArgumentException:非法字符。

我有什么办法可以做到这一点吗?

EN

回答 4

Stack Overflow用户

发布于 2017-08-03 21:59:33

您可以使用以下PowerShell命令(对于NUnit3,对于NUnit2更改运行器名称):

代码语言:javascript
复制
PS> nunit3-console (ls -r *\bin\Debug\*.Tests.dll | % FullName | sort-object -Unique)

来自previous answer的命令在单独的nunit进程中同步运行每个测试程序集。此处提供的命令在单个nunit实例中运行所有测试程序集,这允许利用引擎built-in parallel test run

备注

  1. 记得调整目录搜索模式。给定的示例仅运行以.Tests.dll结尾的程序集,并且在知道Unique筛选的\bin\Debug directories.
  2. Be内部-您可能不希望使用它。
票数 12
EN

Stack Overflow用户

发布于 2015-12-21 20:31:05

不能对输入文件使用通配符,但可以在命令行中指定多个测试库:

代码语言:javascript
复制
/nologo /noshadow /framework:net-4.0 /xml:.\test\TestResults.xml .\test\SomeLib1.Test.dll .\test\SomeLib2.Test.dll .\test\SomeLib3.Test.dll

来自the official documentation

输入文件可以是包含测试的托管程序集(.dll或.exe),也可以是NUnit可识别的项目文件。开箱即用,可识别以下项目类型:

NUnit项目文件(.nunit)

Visual Studio解决方案(.sln)

Visual Studio项目(.csproj、.vbproj、.csproj)

更新

您可以使用批处理文件对文件夹中的所有文件运行命令:

代码语言:javascript
复制
for /f %%f in ('dir .\test\ /b /s *.Test.dll') do nunit-console /nologo /noshadow /framework:net-4.0 /xml:.\test\TestResults.xml "%%f"

dir命令使用*.Test.dll模板从.\test\文件夹中选择文件名。名称将逐个传递给命令(nunit-console)。

票数 8
EN

Stack Overflow用户

发布于 2018-04-14 08:25:30

尝试:

代码语言:javascript
复制
PS> nunit3-console (ls -r *\bin\Debug\*.Tests.dll | % { $_.FullName } | sort-object -Unique)

对one_mile_run的回答进行一些调整,以修复导致错误的问题:

无法将"FullName“类型的"System.String”值转换为类型System.String

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34395554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档