在让OpenCover在我的机器上工作之后,下一步就是让它与构建服务器一起工作。OpenCover MSBuild集成 - 未生成结果
我一直在尝试在Bamboo Build Server上集成OpenCover和MSBuild。我已经修改Build.proj如下构建解决方案之后运行OpenCover:在溶液中的根目录中创建
<Target Name="TestAndCodeCoverage" DependsOnTargets="Build" >
<Message Text="Executing Unit Tests and running OpenCover to check code coverage..." />
<MakeDir Directories="Coverage" />
<Exec Command='"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -target:"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe" -targetargs:/testcontainer:"TestProject\bin\Release\TestProject.dll" -filter:+[*]* -output:Coverage\CodeCoverageResults.xml -register:user -mergebyhash' />
</Target>
的“覆盖”目录(它是在构建期间工作目录)。测试运行并全部通过,但在生成日志(将在命令行中显示的内容)中显示Committing....
之后,将不会生成任何结果,并且Build将转到下一个任务(使用ReportGenerator创建报告 - 这会失败因为CodeCoverageResults.xml未创建)。
在构建机器上的命令行中运行相同的命令时,所有功能都按预期工作,报告可由ReportGenerator生成。
其他人有过同样的问题吗?我是否需要注册等效dll,例如this PartCover示例?
注册两个分析器工作 - 再次感谢! – Jack
这听起来像你即将解决我的问题,但我可以做一些解释,什么注册标志为我做,为什么我需要它为此工作。欢呼 –
分析器是COM对象,因此他们需要注册(不少于注册表)。现在,您可以让主机(控制台)通过使用-register开关(或者如果在非管理员帐户下或受到UAC限制的情况下为-register:user)来执行此操作,或者您可以使用regsvr32实用程序;在构建机器上,如果我安装了探查器,我更喜欢后者,如果我有多个由不同版本的探查器进行概要分析的构建,则只使用-register开关。 HTH –