我正在尝试使用MS Build SonarQube Runner v1.0.1在Sonar版本中获取代码覆盖率。我写了一个从documentation逐字复制的脚本,用于生成VSTest的代码覆盖率结果,我将其作为Post-Build脚本运行,将测试DLL作为参数传入,并添加必要的属性键(TaggedMapOutput
)到开头的脚本参数。
运行脚本,生成coverage二进制和coverage XML(使用XML中的有效数据),运行MS Build SonarQube Runner,并将统计信息上载到Sonar - 代码覆盖率结果除外。当我设置静态位置时,我看到它有效,例如/d:sonar.cs.vscoveragexml.reportsPaths="%CD%\VisualStudio.coveragexml"
,但在尝试设置许多Sonar版本时,这不是一个好方法。
这是CodeCoverage.bat(从文档中复制而来)
C:\tmp\VisualStudio.coveragexml
答案 0 :(得分:1)
%CD%
是批处理变量,我不确定它是否会在TFS 2013中正确扩展。检查TFS 2013是否提供可用于计算绝对路径的环境变量到代码覆盖率报告:https://msdn.microsoft.com/en-us/library/hh850448.aspx#env_vars
此外,当您使用TFS 2013分析项目时,实际上并不需要手动设置sonar.cs.vscoveragexml.reportsPaths
(或手动将二进制覆盖率报告转换为XML) - 请参阅{{3 ("可选 - 配置代码覆盖率")