OpenCover MSBuild集成 - 未生成任何结果

时间:2011-08-09 16:06:37

标签: msbuild mstest code-coverage bamboo opencover

让OpenCover在我的机器上工作后,下一步就是让它与构建服务器一起工作。

我一直在尝试在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>

“Coverage”目录在解决方案根目录(构建期间的工作目录)中创建。测试运行并全部通过,但在构建日志中显示Committing....后(命令行中显示的内容),不会生成任何结果,构建将继续执行下一个任务(创建包含ReportGenerator - 由于未创建CodeCoverageResults.xml,因此失败。

在构建计算机上的命令行中运行相同的命令时,一切都按预期工作,ReportGenerator可以生成报告。

还有其他人有同样的问题吗?我是否需要在this PartCover示例中注册等效的dll?

1 个答案:

答案 0 :(得分:4)

由于构建服务器是一个服务,所以我只使用-register开关,但是如果在构建服务器上我总是说你应该注册32位和64位的分析器,一次,使用regsvr32,然后删除 - 寄存器开关即每次都不需要注册和取消注册分析器。

-register [:user]开关适用于那些人(像我一样)喜欢在有限权限下工作的场景。