我只想尝试OpenCover
从我的应用程序中获取覆盖率统计信息。但我不太明白如何使用它。所以我的问题是什么?dll必须在同一目录中吗?(我的解决方案有几个项目)有任何使用OpenCover
获取Coverage的示例吗?是否需要在IIS Express
或ASP.NET
中运行站点开发服务器?
非常感谢!
我将开放式封面设置为外部工具,使其对我来说更容易。
下载exe并将其放入路径尽可能短的文件夹中。然后设置和外部工具如下:
Title : Open Cover {this is your choice}
Command: {your path to opencover}OpenCover.Console.exe
Arguments: -register:user -target:"C:Progra~1Microsoft Visual Studio 11.0Common7IDECommonExtensionsMicrosoftTestWindowvstest.console.exe" -targetargs:"$(TargetName)$(TargetExt)" -output:coverage.xml -targetdir:"$(ProjectDir)bindebug"
Initial directory: $(TargetDir)
将其设置为使用输出窗口并在退出时关闭。你需要调整测试运行程序以适合你,我使用vs2012,如果你也这样做,那会让你更容易。
要使用它,请在解决方案资源管理器中单击您的测试项目,然后单击开放式外部工具,它将为您生成覆盖率报告。我将它与报表生成器一起使用。
也将其设置为外部工具:
Title: Report Generator
Command: {Your path to report generator}ReportGenerator.exe
Arguments: $(TargetDir)coverage.xml $(TargetDir)coverageResults
再次设置为在退出时关闭并使用输出窗口。
生成覆盖率报告后,您可以使用报告生成器创建一个好看的html版本,您可以点击查看统计数据。
hth
与OpenCover一起安装的文档包含了许多关于运行OpenCover的有用信息。你应该有这个文件的副本https://github.com/sawilde/opencover/blob/master/main/OpenCover.Documentation/Usage.pdf在您的下载包(MSI/ZIP/NUGET)
DLL不需要都在同一目录中,但您通常会发现这是由于生成过程造成的。要从中收集覆盖率的任何程序集都要求这些程序集的PDB与程序集位于同一目录中,或者位于targetdir开关引用的文件夹中。
是的,您可以使用它来运行iisexpress,或者ASP.NET开发服务器使用target开关。