我是 TFS 新手,想将 OpenCover 与 TFS 集成。如果有人这样做,请帮助!
4 回答
这个问题很老了,但也许你仍然感兴趣。使用当前版本的 TFS(2015 更新 2),这现在可以作为“vsts 扩展”。
由于答案没有指定 TFS 的版本,这里是 2015/2017 的答案。
OpenCover 可以使用 Powershell 构建步骤从 TFS 运行。您需要将OpenCover NuGet 包的内容放到 TFS 上并OpenCover.console.exe
从那里运行。
由于 TFS 不支持 OpenCover 生成的格式,因此您需要采取额外的步骤并将结果转换为 Cobertura 格式。可以使用OpenCoverToCoberturaConverter NuGet 包。
我已经在我的博客上更详细地描述了整个过程:
http://codewithstyle.info/setting-up-coverage-reports-on-vsts-with-opencover/
OpenCover只是一个控制台应用程序,因此您只需修改脚本即可让 OpenCover 运行您的单元测试。
我已经好几年没用过 TFS 了,从那以后它发生了变化,但是这篇博文应该会有所帮助
将 OpenCover 的覆盖率测量纳入 TFS 的构建过程(后半部分)
原件是日文的,但如果您熟悉 TFS,那么屏幕可能会很明显。
OpenCover 还附带一个MSBuild 任务,可以帮助您进行集成。
我刚刚将 opencover 与 TFS Build 集成,以生成一个带有声纳处理结果的 xml:
- 在我的源文件夹的根目录下创建了一个 RunCoverage.cmd
- 在 TFS 服务器中安装/复制 Opencover 二进制文件并添加到路径中(必须重新启动 TFS 服务以启用 TFS 才能看到它)。
- 在构建定义中创建了一个新的活动,即编辑构建模板(在声纳执行活动之前)以运行cmd:
有cmd内容:
@REM @echo suppresses command line. ^ is line continuation character
@ECHO Executing OpenCover...
OpenCover.Console.exe -register:user ^
-target:"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe" ^
-targetargs:"/testcontainer:%~dp0test.dll /usestderr /resultsfile:%~dp0MSTestsResults.trx" ^
-output:%~dp0opencovertests.xml
但是我面临三个问题(与我的具体实现有关,但您可能会遇到它们):
- 测试运行两次(一次用于模板本身,另一次用于 OpenCover)
- TFS 服务器中的 MsTest.exe 不在同一路径中,因此当控制器分配代理时(如果通过标签完成匹配),那么如果执行构建的代理位于没有 MSTest 的 TFS 服务器中正确的道路它会失败。
- 如何根据测试项目在 cmd 中注入相应的测试运行器(MsTest、XUnit、Nunit 等)
希望对您有所帮助!(有人可以帮助我;-)