2011-12-28 81 views
1

我有我的visual studio項目中的MSTest代碼覆蓋率設置。但是,當代碼覆蓋率運行時,它會生成過大的覆蓋文件(數據覆蓋率)。原因是它掃描所有的DLL,第三方庫。我的項目有一些C++解決方案,它爲頭文件中的所有方法生成代碼覆蓋。請注意,在我的測試設置(local.testsettings,這是當前活動的)中,我只選擇了一個xyz.dll(我想獲得代碼覆蓋率)。但是,最終代碼覆蓋率包含xyz.dll依賴的代碼覆蓋率信息。如何配置MSTest,使得我不能獲得超出xyz.dll邊界的代碼覆蓋範圍? 注意:當我嘗試使用Hudson emma插件生成xml報告時,產生大的data.coverage文件會導致問題。最終的xml約爲750MBMSTest代碼覆蓋率文件太大,如何選擇性地生成代碼覆蓋率

回答

0

測試覆蓋率工具如何表示其記錄的數據(探針位置,探測命中次數)顯然會影響收集的測試覆蓋率數據的可管理性。

我不能說MS如何對這些數據進行編碼,但很明顯你對結果並不滿意。 我會同意750Mb的輸出似乎有點超過頂部。

這可能是問題是你只是簡單地獲取每個方法/功能時,你 只需要DLL檢測儀器。我建議你尋找一個開關來控制儀器。我無法幫助您進一步使用MS工具。

我們的C++ Test Coverage將讓您指定只需您想要檢測的文件。它確實會生成一個探針位置文件,每個探針有一個條目,但其大小與所檢測的代碼量成正比,並且它不是龐大的XML文件。一百萬行檢測代碼生成幾兆字節的探測位置文件。在執行時,您會生成探測點擊數據;在最差的情況下,輸出的數據以字節爲單位進行測量,而對於每個探測器,測量結果的數量要小得多,如果您的覆蓋率較低或較高,則輸出數據要小得多。對於同一百萬行,我預計這是另一個兆字節。

這可能需要更多的努力來配置我們的工具來檢測DLL; MS具有控制編譯器的優勢,我們不這樣做。這似乎是一個小的代價來獲得可用的答案。