我們有一個使用C#,C++/Cli和一些本地C++代碼的項目。我們使用TeamCity進行構建和測試。TeamCity C++代碼覆蓋範圍
我們使用vstest.console(VS2012測試運行器)運行測試。
對於託管代碼,dotCover(已集成到TeamCity中)用於代碼覆蓋。但是,它不適用於本機C++代碼(這是可以預料的)。
如何獲取代碼覆蓋率結果我們的單元測試本地C++部件到TeamCity中?理想情況下,解決方案將是免費的。
我們有一個使用C#,C++/Cli和一些本地C++代碼的項目。我們使用TeamCity進行構建和測試。TeamCity C++代碼覆蓋範圍
我們使用vstest.console(VS2012測試運行器)運行測試。
對於託管代碼,dotCover(已集成到TeamCity中)用於代碼覆蓋。但是,它不適用於本機C++代碼(這是可以預料的)。
如何獲取代碼覆蓋率結果我們的單元測試本地C++部件到TeamCity中?理想情況下,解決方案將是免費的。
我們使用Bullseye Coverage進行C++代碼覆蓋。然後我們使用提供的covxml
工具將二進制覆蓋率文件轉換爲XML文件,然後我們讀出一系列用於函數和條件覆蓋率的有用屬性(例如fn_total
,fn_cov
,cd_total
,cd_cov
),並通過statistics service messages使用predefined coverage keys。
這是一個設置的工作,但我認爲TeamCity仍然不支持任何C++覆蓋工具,因此我們的解決方案對於我們多年後仍然運行良好。
編輯:我已經將我們內部工具的XML parsing code上傳到Gist。
如果你能分享你的xml解析腳本,那將是非常棒的:) – tauran
當然,這並不是什麼祕密。我把它上傳到了主題上,看到上面的帖子。我不認爲我們正在使用最新的Bullseye(但絕對比代碼中的註釋更新),所以YMMV,但如果我正確記得這個文件格式是由作者發佈的,所以它不應該被打破。 –
以下是Bullseye網站上的文檔:http://www.bullseye.com/help/ref-covxml.html –