我正在使用TFS 2013 \ VS 2013专业版进行持续构建。我希望使用像OpenCover这样的开源工具进行代码覆盖。我没有代码覆盖工具的经验。我从Nuget安装了OpenCover UI,但不确定如何在TFS中集成构建中包含Codecoverage。获得"无代码覆盖率结果"当构建运行时。
我在构建定义中的自动化测试节点下启用了代码覆盖率。
对于如何在TFS \ VS 2013专业版中实现代码覆盖率的任何建议将不胜感激。
答案 0 :(得分:0)
如果您的意思是构建定义中的启用代码覆盖率,就像下面的screeshot一样。
这是VS内置代码覆盖率,根据Compare VS offerings网站,只有 Visual Studio Enterprise 具有代码覆盖功能,因此如果您使用TFS进行CI构建并希望使用内置代码覆盖功能,需要在构建代理计算机上安装VS Enterprise。
如果要将 OpenCover 与TFS XAML构建集成,则需要自定义构建过程模板,在构建定义中添加自定义活动以触发用于生成报告的opencover命令。
- 在我的源文件夹
的根目录创建了一个RunCoverage.cmd- 在TFS服务器中安装/复制Opencover二进制文件并添加到Path中(必须重新启动TFS服务以启用TFS才能看到它)。
- 在构建定义中创建了一个新的actitivity,即编辑构建模板(在声纳执行活动之前)以运行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
更多细节请参考 NaimRajaDíaz在这个类似问题中的回答:Integration of OpenCover with TFS