在构建后事件中打开生成的HTML报告

时间:2013-11-27 20:39:10

标签: visual-studio post-build-event opencover reportgenerator

在我的单元测试项目的后期构建事件中,我运行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本身内打开,我希望如此。

我是否以及如何实现这一目标?

3 个答案:

答案 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

但它可能会将其打开为要编辑的文件而不是查看。