Asp.net-Core
.NET Core 1.0 - 如何使用 xUnit 命令行執行“解決方案中的所有測試”
xUnit.net *(.NET Core / ASP.NET Core) 入門*頁面介紹瞭如何使用
dotnet test命令行執行測試。它聲明它需要一個特定的project.json,我們在其中添加 xunit 依賴項和測試執行器:
"testRunner": "xunit", "dependencies": { "xunit": "2.1.0", "dotnet-test-xunit": "1.0.0-rc2-build10015" }如果我嘗試從父目錄呼叫它:
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 ≡]>問題:有沒有辦法用一個來執行所有測試(多個project.json)
dotnet test?
由於已經快一個月沒有答案了,我至少會分享一下我一直在做的事情。(一旦 Visual Studio “15” RTM 啟動,這將不再相關,因為project.json 已死)
只需在所有 project.json 上使用
for循環:在本地,從測試目錄,我只是執行:
for /f %a in ('dir /b /s project.json ^| find /v "TestUtilities"') do dotnet test %a在所有project.json上執行它,除了路徑有:TestUtilities
請注意,在TeamCity上,您需要轉義 %(在腳本中您需要加倍:%%),因此它通過:
for /f %%%a in ('dir /b /s project.json ^| find /v "TestUtilities"') do dotnet test %%%a注意 %%%。由於 TeamCity 中的 % 用於變數,因此第三個 % 對其進行了轉義。
如果有人在尋找 Windows 答案,可以使用 PowerShell 中的 oneliner 來完成這項工作:
dir test | % { dotnet test $_.FullName }