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

OpenCover MSBuild集成-未生成任何结果,msbuild,mstest,code-coverage,bamboo,opencover,Msbuild,Mstest,Code Coverage,Bamboo,Opencover,在让OpenCover在我的机器上工作之后,下一步是让它与构建服务器一起工作 我一直在尝试将OpenCover与MSBuild集成到一个竹子构建服务器上。我对Build.proj进行了如下修改,以便在构建解决方案后运行OpenCover: <Target Name="TestAndCodeCoverage" DependsOnTargets="Build" > <Message Text="Executing Unit Tests and running OpenCov

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

我一直在尝试将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”目录在解决方案根目录(构建期间的工作目录)中创建。测试运行并全部通过,但在生成日志中显示
提交…
后(将在命令行中显示),不会生成任何结果,生成将继续执行下一个任务(使用ReportGenerator创建报告-此操作失败,因为没有创建CodeCoverageResults.xml)

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


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

由于生成服务器是一项服务,因此我只会使用-register开关,但是如果在生成服务器上,我总是说您应该同时注册32位和64位探查器一次,使用regsvr32,然后删除-register开关,即无需每次注册和注销探查器


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

听起来你好像要解决我的问题,但我可以解释一下-register标志对我有什么作用,以及为什么我需要它才能工作。Cheers探查器是COM对象,因此它们需要注册(至少在注册表中)。现在,您可以让主机(控制台)通过使用-register开关(或-register:user,如果是在非管理员帐户下或受UAC限制)来完成此操作,或者您可以使用regsvr32实用程序;在构建机器上,如果我安装了探查器,我更喜欢后者,如果我有多个构建被不同版本的探查器探查,我只会使用-register开关。我知道为什么我没有收到任何结果,尽管探查器已根据windows日志正确注册和加载?只有在Bambol中运行(设置为在本地系统帐户下的Tomcat 6中运行)时,才会发生这种情况,在同一构建目录中使用命令行进行的测试运行会成功交付结果。PDB通常是问题所在(是否在“发布”版本中生成它们?不分析程序集/类/方法的原因记录在XML输出中。