2016-07-28 54 views
3

我使用Cake作爲構建腳本和TeamCity for CI。 我正在用NUnit運行Cake運行單元測試,然後TeamCity使用'xml報告處理器'來提取這些結果。將nunit結果導入團隊城市蛋糕

正如你可以看到它的導入文件,但「測試」標籤丟失,所以我不能看到測試輸出。

我錯過了一個步驟嗎?

回答

2

正是有了NUnit控制檯的問題。我降級到3.2.1,現在它可以工作。

+0

感謝您報告這一個。用這個解決方案更新原始問題或將其標記爲接受的答案可能是值得的。 –

2

測試我的蛋糕任務是僅此測試報告選項卡出現

NUnit3(testsDir.ToString() + "/*Tests.dll", new NUnit3Settings 
{ 
    NoResults = true, 
    NoHeader = true, 
    Framework = "net-4.0", 
    Workers = 5, 
    Timeout = 10000 
}); 

你真的需要報告的XML?

+0

這是依靠NUnit內置的能力來檢測它是否在TeamCity上運行並提供正確的服務消息來上傳測試結果,對不對?確實如此, –

+1

。因爲我的需要綽綽有餘 – pitermarx

+0

這對我不起作用。 –

1

它在我看來像你的測試未能正確執行(而不是正確執行失敗的測試)。嘗試在本地運行構建,然後檢查TestResult.xml文件的內容。

如果看起來不錯,更改TC上的項目設置以將xml文件保存爲工件,並將您在那裏看到的內容與本地成功運行進行比較。

最後,確保TC配置中的XML報告類型設置爲NUnit。

希望這有助於 馬克

+0

感謝那個Mark。不幸的是,測試故意失敗嘗試我介紹了一個失敗的測試,看看是否有問題時生成的報告。 我可以確認TestResult.xml看起來不錯,符合我的預期。 我還是不想工作 –

0

當Teamcity 9.X無法加載nunit 3 xml時,我收到了一個類似的問題,因爲舊版本的teamcity報告解析器構建功能不理解該格式。

我得到它由NUnit的結果轉換爲工作的xUnitlink to the xslt!並導入該文件爲junit結果。

Task("Run-Unit-Tests") 
.Does(() => 
{ 
    DotNetCoreTest("./Project");   
}).Finally(() => 
{ 
    XmlTransform("./nunit3-xunit.xslt", "./TestResult.xml", "./NUnit.WebApp.FunctionnalTests.TestResult.xml"); 
    if(TeamCity​.IsRunningOnTeamCity) 
    {  
     TeamCity.ImportData("junit","./NUnit.WebApp.FunctionnalTests.TestResult.xml"); 
    } 
});