2

我試圖輕鬆地將Visual Studio 2012中的單元測試結果和代碼覆蓋率報告顯示到CruiseControl.NET構建報告中。這些作品如下:將Visual Studio 2012集成到Cruise Control.NET中

  • 的MSBuild - 建設項目
  • vstest.console.exe - 通過命令行來執行Visual Studio的單元測試和代碼覆蓋工具
  • 定製控制檯應用程序轉換覆蓋向XML報告

我的問題是如何控制vstest.console.exe的輸出名稱。無論如何我無法控制這一點。我現在唯一的解決方案是編寫一些自定義腳本來查找覆蓋文件和TRX文件並重命名爲已知值。然後巡航控制工具可以正確地找到文件。

任何幫助,將不勝感激。謝謝,

回答

0

看看這個帖子 http://rubenwillems.blogspot.be/2011/09/setting-up-ccnet-in-combination-with.html

它顯示所需的步驟。 看那裏的第4步和第5步,這些封面單元測試和覆蓋。

+0

這是針對Visual Studio 2010的。在Visual Studio 2012中,他們有vstest.console.exe。這不允許你指定結果文件。這就是我試圖確保我不會錯過這個新工具的東西。 –

+0

雖然這對於VS2010來說是一篇很棒的文章:-P –

+0

我忽略了這個版本,對不起。目前我沒有VS2012,但msdn上的文檔聲稱導出仍然存在。 http://msdn.microsoft.com/en-us/library/ms182489%28v=vs.110%29.aspx /resultsfile:testResults.trx – Williams

1

命令行看起來非常有限:

http://msdn.microsoft.com/en-us/library/vstudio/jj155796.aspx

「的TRX記錄器不支持任何參數(不像TFS出版商記錄器)。」

來自:

Specifying results filename for vstest.console.exe

這裏是一個通用尖端。

想到CC.NET的一種方式是這樣的:它是一個很大的花哨的「Msbuild.Exe」執行器。

所以,如果你可以用msbuild(.proj)文件寫出你的邏輯,你可以讓CC.NET調用它。

1. CC.NET calls a source-control retrieve task. 
2. In that retrieve, there is a .proj file. 
3. You get CC.NET to call "msbuild.exe MySolutionBuild.proj" 
4. Have the .proj file run Unit-Tests, create xml, create artifacts (.zip(s) or .msi(s), etc) 
5. After the build, have CC.NET pull in the results (usually xml with File-Merge) and have CC.NET send out emails (publishers). 

如果你這樣做,如果你去到TFS(或詹金斯或其他),你會盡量減少過渡的努力。

如果你非常依賴CC.NET專有命令,你可以使它工作,但它很難維護恕我直言。

+1

我之前已經擴展了MSBuild來做各種有趣的事情,它很強大並且能夠擴展它,我可能會做一些這樣的事情。現在,我正在執行以下操作: 1.調用清理批處理文件以刪除覆蓋/測試報告 2.使用MSBuild執行構建 3.調用該工具執行單元測試和覆蓋 4.調用自定義工具找到並重新命名覆蓋/測試報告 5.調用自定義工具生成覆蓋報告到XML 6.使用ReportGenerator(從codeplex)獲取XML並將其生成HTML –

+0

因此,我最新的方法與您的方法非常相似。我只需要嘗試打包它,這樣就可以了e到其他系統(如您所述)。 –