Asp.net-Core

.NET Core 1.0 - 如何使用 xUnit 命令行執行“解決方案中的所有測試”

  • December 12, 2016

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.jsondotnet 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 }

引用自:https://stackoverflow.com/questions/37323364