OpenCover- Opencover 在 tfs 构建定义中使用 vstest.console.ex 时说缺少 PDB

OpenCover- Open cover saying missing PDBs when working with vstest.console.ex in tfs build definiton

我正在尝试将 Opencover 与 TFS2013 集成以实现自定义代码覆盖率。我正在通过构建定义传递 运行 Open Cover 所需的参数,并在构建过程模板中使用 InvokeProcess activity 调用 OC。

我正在关注中提到的收益 this blog , here and here

传递的最终 OpenCover 参数是

OpenCover.Console.exe -register:user  -target:"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe"  -targetargs:"<build_definition_folder>\bin\NUnitTestDemo.dll <build_definition_folder>\bin\UnitTest.dll  /Platform:X86 /Framework:Framework45 /Logger:trx "  -targetdir:"<build_definition_folder>\bin"  -mergebyhash  -output:"<build_definition_folder>\bin\results.xml"

输出结果为

测试总数:2。通过:2。失败:0。跳过:0。

测试运行成功。

测试执行时间:0.6657 秒

正在提交...

没有结果,这可能是出于多种原因。最常见的原因是:

1) 缺少与筛选器匹配的程序集的 PDB,请查看 输出文件并参考有关过滤器的使用指南(Usage.rtf)。 2)profiler可能没有注册正确,请参考Usage 指南和 -register 开关。

请帮助我。 PDB 仅存在于同一个 bin 文件夹中。我尝试 运行 在我的机器上使用 Open Cover UI 在本地打开封面,结果很好。但是对于控制台应用程序,它在构建服务器中没有像我预期的那样工作。

我以前遇到过这个问题,这是因为我的构建服务是 运行 "Network Service" 帐户。我用管理员账号改成运行后,运行正常,结果生成成功。

我的修复: 停止构建服务并将 "Properties" 中的设置更改为 运行 作为管理员帐户的服务。然后启动构建服务并排队新构建。