4

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

我一直在尝试将 OpenCover 与 Bamboo Build Server 上的 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 生成报告。

有没有其他人有同样的问题?我是否需要像这个PartCover 示例一样注册等效的 dll?

4

1 回答 1

5

由于构建服务器是一项服务,因此我将仅使用 -register 开关,但是如果在构建服务器上,我总是说您应该使用 regsvr32 注册一次 32 位和 64 位分析器,然后删除 -register 开关,即无需每次都注册和注销分析器。

-register[:user] 开关适用于人们(比如我自己)喜欢在有限权限下工作的场景。

于 2011-08-09T20:59:01.553 回答