当前位置:  开发笔记 > 编程语言 > 正文

使用NUnit Console Runner在文件夹下运行所有​​测试

如何解决《使用NUnitConsoleRunner在文件夹下运行所有​​测试》经验,为你挑选了2个好方法。

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

/nologo /noshadow /framework:net-4.0 /xml:.\test\TestResults.xml .\test\*.Test.dll

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

无论如何我能做到这一点吗?



1> Sergii Zhevz..:

无法将通配符用于输入文件,但您可以在命令行中指定多个测试库:

/nologo /noshadow /framework:net-4.0 /xml:.\test\TestResults.xml .\test\SomeLib1.Test.dll .\test\SomeLib2.Test.dll .\test\SomeLib3.Test.dll

从官方文档:

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

NUnit项目文件(.nunit)

Visual Studio解决方案(.sln)

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

UPDATE

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

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\使用*.Test.dll模板从文件夹中选择文件的名称.名称将nunit-console逐个传递给command().



2> one_mile_run..:

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

PS> nunit3-console (ls -r *\bin\Debug\*.Tests.dll | % FullName | sort-object -Unique)

来自先前答案的命令同步地在单独的nunit进程中运行每个测试程序集.此处显示的命令在单个nunit实例中运行所有测试程序集,允许利用引擎内置的并行测试运行.

备注

    记得调整目录搜索模式.鉴于例如只运行结尾组件.Tests.dll和内部\bin\Debug目录.

    注意Unique过滤 - 你可能不想拥有它.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有