1

我只是想尝试OpenCover从我的应用程序中获取覆盖率统计信息。但我不太了解如何使用它。所以这里是我的问题?dll必须在同一个目录中吗?(我的解决方案有几个项目)有什么例子可以让 Coverage 使用OpenCover吗?是否需要在开发服务器中IIS Express或与ASP.NET开发服务器一起运行站点可以?

非常感谢!

4

2 回答 2

2

我将开盖设置为外部工具,以使我更轻松。

下载 exe 并将其放在路径尽可能短的文件夹中。然后设置和外部工具如下:

Title : Open Cover {this is your choice}
Command: {your path to opencover}\OpenCover.Console.exe
Arguments: -register:user -target:"C:\Progra~1\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" -targetargs:"$(TargetName)$(TargetExt)" -output:coverage.xml  -targetdir:"$(ProjectDir)\bin\debug"
Initial directory: $(TargetDir)

将其设置为使用输出窗口并在退出时关闭。您需要调整测试运行程序以适合您,我使用 vs2012,如果您也这样做,那会让您更轻松。

要使用它,请在解决方案资源管理器中单击您的测试项目,然后单击打开封面外部工具,它将为您生成覆盖率报告。我将它与报告生成器一起使用。

也将其设置为外部工具:

 Title: Report Generator
 Command: {Your path to report generator}\ReportGenerator.exe
 Arguments: $(TargetDir)coverage.xml $(TargetDir)\coverageResults

同样,设置为在退出时关闭并使用输出窗口。

生成覆盖率报告后,您可以使用报告生成器创建一个漂亮的 html 版本,您可以点击查看统计信息。

hth

于 2013-07-17T09:17:26.583 回答
1

与OpenCover一起安装的文档包含很多关于运行 OpenCover 的有用信息。您应该在下载包 (MSI/ZIP/NUGET) 中有此文件的副本https://github.com/sawilde/opencover/blob/master/main/OpenCover.Documentation/Usage.pdf

DLL 不需要都在同一个目录中,但您通常会发现这是由于构建过程而发生的。您要从中收集覆盖范围的任何程序集都要求这些程序集的 PDB 与程序集位于同一目录中或位于targetdir开关引用的文件夹中。

是的,您可以使用它来运行 iisexpress 或 ASP.NET 开发服务器使用目标开关。

于 2013-07-17T04:21:13.360 回答