2017-04-10 35 views
5

我在VSTS 2個構建步驟:如何運行和VSTS(Vs2017)發佈.NETCore的xUnit測試?

  1. 運行測試(VSTS在cmd任務):DOTNET測試-xml TEST-results.xml
  2. 要發佈測試結果的步驟(VSTS測試發佈的任務):格式= XUnit和上一步的文件名

但是在升級到VS2017之後,-XML標記不再工作。我更改了第一步使用此: test --logger「trx; LogFileName = TEST-results.xml」

但第二步引發錯誤「無效的結果文件請確保測試結果格式字段在該任務的文件

有另一種方式來運行VSTS .NetCore測試的結果格式相匹配?還是我做錯了什麼?

感謝,

回答

3

更改「測試結果格式」以結果步驟/任務「發佈測試VSTest」,它正確地讀取結果文件。

+0

非常感謝你。就是這樣。 – MuazzamAli

4

starain-MSFT的回答會的工作,除非你想/需要使用的xUnit記錄儀記錄的xUnit的測試。在這種情況下,你需要做兩件事。

  1. 作爲包裝裁判添加https://www.nuget.org/packages/XunitXml.TestLogger/1.0.2-pre-rtm測試項目,無論是通過在VS '管理的NuGet包',或通過手動您的csproj文件中添加裁判,即

<PackageReference Include="xunitxml.testlogger" Version="1.0.2-pre-rtm" />

  • 修改VSTS DOTNET測試生成步驟使用此記錄器: dotnet test -a:. -l:xunit
    -a:.開關,它指定了適配器路徑,僅用於CLI工具V15.0必要,在15.1可被移除(如所討論here)。截至今日,在VS2017託管隊列使用15.0,所以你需要在VSTS的-a:.現在。 的-l:xunit使用的FriendlyName,我認爲這是不那麼友好,因爲你必須深入到源代碼的特定記錄器找到它被指定(如看到了TRX here爲的xUnit和here)屬性
  • -l交換機的文檔很少見,但在vstest的github中,有一個document,它討論測試記錄器以及它們的存儲庫和nuget包的鏈接,在查看源代碼友好名稱,讓你一路在那裏爲你需要的任何記錄器。如果您需要自定義記錄器,那麼這些都是幫助您理解如何實施的絕佳示例。

    最後,該發佈的步驟,您最初使用應該罰款,因爲輸出文件仍然是所謂TestResults.xml

    +0

    你爲我節省了很多時間。謝了哥們! – DarkKnight

    2

    使用dotnet xunit而不是dotnet test。請參閱Getting Started with .NET Core

    +1

    謝謝!這是一個很好的解決方案。但是,該CLI命令目前處於Beta版。如果您的規則要求您使用RTM或儘可能靠近,其他解決方案將成爲您目前最好的選擇。另外,值得注意的是,'dotnet xunit -xml標誌使用項目根目錄,因此如果您需要將測試結果導入到TestResults中,則需要將其指定爲文件路徑的一部分。 – Erikest

    相關問題