声纳没有拿起IntellijIdea / Jacoco报道报告生成的代码覆盖率报告。
下面是我试图让声纳接收生成的jacoco报告的一个样本
构建步骤:
第1步
蚂蚁
构建文件路径:junit-build.xml
目标:默认
启用了JaCoCo的覆盖范围
执行:如果之前的所有步骤都成功完成了
第2步
SonarQube Runner
执行:如果之前的所有步骤都已成功完成
工件:
.teamcity
coverage_jacoco
jacoco.exec
UT JaCoCo报告: .teamcity / coverage_jacoco / jacoco.exec
JaCoCoSensor:未找到JaCoCo报告:/ export /.../ BuildAgent2 / work /.../。teamcity / coverage_jacoco / jacoco.exec
声纳:
此组件没有覆盖详细信息。
答案 0 :(得分:0)
问题在于TeamCity jacoco运行器将输出文件放在一个临时文件位置,当作为maven / ant构建的一部分运行时,声纳插件或声纳无法找到它。 " .teamcity"在发布的工件存储区中,而不是构建区域,并且在发布jacoco输出之前,它似乎位于随机命名的目录中。
另一种方法是关闭teamcity jacoco runner并通过maven或ant build本身触发覆盖和声纳扫描。 Sonar可以配置为通过在管理 - > java-> jacoco设置(相对于构建或模块根目录)中放置正确的位置来查找结果。这将使您的覆盖范围成为声纳。
要将覆盖率报告添加回teamcity,您需要在构建常规设置中添加工件,该工件将报告html文件收集到coverage.zip文件中。然后,您将在构建结果中获得“代码覆盖率”选项卡。 (如果你得到两个,那么你仍然在运行teamcity cover runner。)
简称maven版本(ant在逻辑上是相同的):
对于有多个报告的多模块构建,我无法找到将这些报告纳入团队城市的方法 - 尽管它们在声纳中看起来很好。有一个jacoco合并目标可能有所帮助,但我没有成功 - 我怀疑它会搞乱声纳视图。