1

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

如果以及如何实现这一目标?

4

3 回答 3

3

我实际上已经使用 PowerShell 和NavigateVS 核心自动化包装器EnvDTE中的方法让它工作了。我用call以下命令替换了最后一个命令:

powershell 
-ExecutionPolicy Unrestricted 
-Command "& { $dte = [System.Runtime.InteropServices.Marshal]::
                     GetActiveObject(\"VisualStudio.DTE.11.0\"); 
              $dte.ItemOperations.Navigate(
                     \"$(SolutionDir)TestResults\Coverage\index.htm\"); }"

这将在 VS 项目内的新浏览器选项卡中打开报告。

于 2013-11-28T14:01:58.863 回答
2

非常简单的事情在后期构建事件中对我有用-

start http://localhost/MYWeb/Home.aspx
于 2014-09-23T09:10:55.410 回答
0

您可能可以使用 devenv 使用命令行开关打开文件。

devenv /edit $(SolutionDir)TestResults\Coverage\index.htm

但它可能会将其作为文件打开以进行编辑而不是查看。

于 2013-11-28T08:41:37.127 回答