在我的单元测试项目的后期构建事件中,我运行OpenCover和ReportGenerator来获取代码覆盖率报告:
del "$(SolutionDir)TestResults\Coverage\*.*"
"$(SolutionDir)packages\OpenCover.4.5.1923\OpenCover.Console.exe"
-register:user
-target:"$(MSBuildProgramFiles32)\Microsoft Visual Studio 12.0\
Common7\IDE\MSTest.exe"
-targetdir:"$(ProjectDir)bin\$(ConfigurationName)"
-targetargs:"/testcontainer:\"$(TargetPath)\""
-output:"$(SolutionDir)TestResults\Coverage\coverage.xml"
-filter:"+[MyProject]* "
$(SolutionDir)packages\ReportGenerator.1.9.1.0\ReportGenerator.exe"
-reports:"$(SolutionDir)TestResults\Coverage\coverage.xml"
-targetdir:"$(SolutionDir)TestResults\Coverage"
call "$(SolutionDir)TestResults\Coverage\index.htm"
最后一步是打开生成的HTML报告。使用当前的call
命令,它会在我的默认Web浏览器中打开HTML报告。但如果报告可以在Visual Studio本身内打开,我希望如此。
我是否以及如何实现这一目标?
答案 0 :(得分:3)
我实际上已经使用PowerShell和VS核心自动化包装器EnvDTE中的Navigate
方法工作了。
我用以下内容替换了最后一个call
命令:
powershell
-ExecutionPolicy Unrestricted
-Command "& { $dte = [System.Runtime.InteropServices.Marshal]::
GetActiveObject(\"VisualStudio.DTE.11.0\");
$dte.ItemOperations.Navigate(
\"$(SolutionDir)TestResults\Coverage\index.htm\"); }"
然后在VS项目内的新浏览器选项卡中打开报告。
答案 1 :(得分:2)
在构建后事件中,非常简单的事情对我有用 -
start http://localhost/MYWeb/Home.aspx
答案 2 :(得分:0)
您可以使用devenv使用command line开关打开文件。
devenv /edit $(SolutionDir)TestResults\Coverage\index.htm
但它可能会将其打开为要编辑的文件而不是查看。