Bru*_*cia 14 xunit .net-core asp.net-core dotnet-cli .net-core-rc2
该入门xUnit.net(.NET核心/ ASP.NET核心)页面描述如何运行与测试dotnet test
的命令行.
它声明它需要一个特定的project.json,我们在其中添加xunit依赖项和测试运行器:
"testRunner": "xunit",
"dependencies": {
"xunit": "2.1.0",
"dotnet-test-xunit": "1.0.0-rc2-build10015"
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试从父目录中调用它:
C:\git\Project\test [master ?]> dotnet test
dotnet-test Error: 0 : System.InvalidOperationException: C:\git\Project\test\project.json does not exist.
at Microsoft.DotNet.Tools.Test.TestCommand.GetProjectPath(String projectPath)
at Microsoft.DotNet.Tools.Test.TestCommand.DoRun(String[] args)
C:\git\Project\test [master ?]>
Run Code Online (Sandbox Code Playgroud)
问题:有没有办法用一个单独运行所有测试(多个project.json)dotnet test
?
如果有人在寻找Windows答案,那么PowerShell中的oneliner可以完成这项工作:
dir test | % { dotnet test $_.FullName }
由于已经差不多一个月而且没有答案,我至少会分享我一直在做的事情.(一旦Visual Studio"15"RTM启动,这将不相关,因为project.json已经死了)
只需for
在所有project.json上使用循环:
在本地,从测试目录,我只是运行:
for /f %a in ('dir /b /s project.json ^| find /v "TestUtilities"') do dotnet test %a
Run Code Online (Sandbox Code Playgroud)
在所有project.json上运行它,除了路径有:TestUtilities
请注意,在TeamCity上你需要转义%(并且在脚本中你需要双倍:%%)所以它顺其自:
for /f %%%a in ('dir /b /s project.json ^| find /v "TestUtilities"') do dotnet test %%%a
Run Code Online (Sandbox Code Playgroud)
注意%%%.由于TeamCity中的%用于变量,因此第三个%转义它.
归档时间: |
|
查看次数: |
5819 次 |
最近记录: |