的Visual Studio 2012的代碼覆蓋工具是測試執行系統完全分開(全面披露:我寫的,但繼承了我離開微軟後的團隊去掉了一些非常有用的功能)。它在VS 2012中從頭開始被重寫,以便在加載到進程中時動態地儀表本機(x86和x86-64)和託管代碼(.NET和Silverlight),而不是修改磁盤上的可執行文件。
您可以在「%ProgramFiles%\ Microsoft Visual Studio 11.0 \ Team Tools \ Dynamic Code Coverage Tools」中找到CodeCoverage.exe。
收集數據:
CodeCoverage.exe collect /output:foo.coverage foo.exe foos_args
一個配置文件(有一個默認的名爲CodeCoverage.config該目錄)可以被指定爲控制集合。
要分析覆蓋數據,你可以在Visual Studio 2012中打開foo.coverage或使用覆蓋工具本身做了分析:
CodeCoverage.exe analyze /output:results.xml foo.coverage
注:儀表發生,.pdb文件必須被發現你的模塊。由於您在2010年進行建設,因此可能無法使用2012年的DIA,因此您可能需要使用2012年的工具集進行重建。如果在覆蓋率分析中沒有看到您期望的模塊,請將/include_skipped_modules
傳遞給分析命令;將會有一個「原因」屬性告訴你爲什麼模塊被跳過(排除,沒有調試信息等)。
編輯:此外,與以前版本的Visual Studio不同,2012的覆蓋文件格式是完全自包含的。分析時不需要存在模塊和.pdbs。
afaik這是唯一可能與最終(或任何最昂貴的VS版本命名)版本的視覺工作室。我們也對此進行了調查(以殺死unix/jenkins構建代碼覆蓋率)並堅持使用unix coverage – Najzero 2013-02-20 15:21:55
謝謝。我們已經廣泛部署了Premium,但不是Ultimate。 – 2013-02-20 15:30:24
您可以使用CodeCoverage命令行工具輕鬆完成VS2012。檢查「%ProgramFiles%\ Microsoft Visual Studio 11.0 \ Team Tools \ Dynamic Code Coverage工具」是否具有該功能。它需要.pdbs出現在儀器上,我不確定DIA是否會保持與2010的向後兼容性,因此您可能需要使用2010年構建的應用程序。但值得一試。 – 2013-02-21 00:04:53