通過命令行在 vstest.console.exe 中使用 /Enablecodecoverage 時配置 .coverage 文件的位置
如果我們在vstest.console.exe中設置,有沒有辦法設置*.coverage*文件所在的位置?
/Enablecodecoverage我沒有在命令行呼叫本身中看到選項。是否要在*.runsettings*文件中設置?
如未指定設置文件時使用預設設置的正常命令行選項中所述。
/Enablecodecoverage我沒有在命令行呼叫本身中看到選項。是否要在 .runsettings 文件中設置?
是的,您必須自定義您的 .runsettings 文件,每當您使用Analyze Code Coverage時應用。
在命令行測試中自定義執行設置
- 啟動 Visual Studio 開發人員命令提示符:
在 Windows開始上,選擇所有程序、Microsoft Visual Studio、Visual Studio 工具、開發人員命令提示符。
- 跑:
vstest.console.exe MyTestAssembly.dll /EnableCodeCoverage /Settings:CodeCoverage.runsettings在建構定義中自定義執行設置
您可以從團隊建構中獲取程式碼覆蓋率數據。 **注意:**確保您的 .runsettings 文件已簽入。
編輯:
vstest.console.exe預設創建一個*.coverage 文件,然後可以將該文件轉換為*.xml 格式。
要獲取 *.coverage 文件,您可以使用以下命令:
“c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe” “PATH_OF_YOUR_EXECUTABLE_OR_DLL” /InIsolation /EnableCodeCoverage
在 Visual Studio 中創建一個新的命令行項目並添加對
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.Coverage.Analysis.dll.添加以下程式碼(路徑在這裡是硬編碼的,但可以作為參數提供):
using Microsoft.VisualStudio.Coverage.Analysis; namespace CoverageConverter { class Program { static void Main(string[] args) { using (CoverageInfo info = CoverageInfo.CreateFromFile( "PATH_OF_YOUR_*.coverage_FILE", new string[] { @"DIRECTORY_OF_YOUR_DLL_OR_EXE"}, new string[] { })) { CoverageDS data = info.BuildDataSet(); data.WriteXml("converted.coveragexml"); } } } }CodeCoverage.exe 是另一種轉換為 *.xml 格式的覆蓋工具。
編輯2:
您可以使用帶有選項的
/UseVsixExtensions選項/EnableCodeCoverage來啟用程式碼覆蓋率:"C:\Program Files (x86)\Microsoft Visual Studio 11.0 \Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" /UseVsixExtensions:true /EnableCodeCoverage "C:\Users\YourName\Documents\Visual Studio 2012\Projects\YourProjectFolder\YourApp.Tests\bin\Debug\YourApp.Tests.dll"上面的命令將在TestResults目錄下生成 .coverage 文件。
