我在我的VSTS版本中运行单元测试(虽然我在Visual Studio中获得了相同的结果)。我使用.runsettings文件将程序集设置为忽略等,这链接到Visual Studio项目并在VSTS测试任务中设置。
我已检查过"启用了代码覆盖率"在VsTest任务中,测试运行并且覆盖范围在VSTS中发布,例如:
当我下载.coverage文件并在Visual Studio中打开时,这些数字会匹配(就像我实际在本地运行Visual Studio中的测试一样)。这是输出:
我遇到的问题是当我将此.coverage文件导出到xml时(因为我需要将这些数据作为构建的一部分进行处理),我使用以下命令执行此操作:
"C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe" analyze /output:out.xml "TST-20180307.7.debug.any cpu.1368.coverage"
然而,当我这样做时,覆盖的总块数和导出的xml文件中的总数与.coverage源中的总数不匹配:
<module name="vstsrestapicommon.dll" path="vstsrestapicommon.dll" id="xxx" block_coverage="95.49" line_coverage="90.85" blocks_covered="678" blocks_not_covered="32" lines_covered="268" lines_partially_covered="1" lines_not_covered="26">
基本上我们正在查看单个模块(dll),但Visual Studio和VSTS报告的块报告为641,但导出的xml报告的报告与679相同。
答案 0 :(得分:0)
debug |任何cpu |块| 77.51%| 538分之417强>
这是总代码覆盖率结果。
<module name="xxx.dll" path="xxx.dll" id="xxx" block_coverage="78.21" line_coverage="86.32" blocks_covered="445" blocks_not_covered="124" lines_covered="164" lines_partially_covered="2" lines_not_covered="24">
这只是程序集的代码覆盖率结果。
例如:
总覆盖结果 57.69%,但 classlibrary1.dll 的覆盖结果为 31.25%,因此导出的xml文件为 classlibrary1.dll 的结果是 block_coverage =“31.25”。