SonarQube - 统一测试新代码无效的代码覆盖

时间:2016-01-25 13:07:27

标签: git unit-testing sonarqube code-coverage sonarqube5.2

我正在尝试使用新代码的单元测试代码覆盖率进行声纳分析。当我使用cobertura进行代码覆盖率分析并进行声纳分析时,代码的整体代码覆盖率会正确显示,但不会显示新代码的代码覆盖率。

设定:

  • scm = Git
  • sonar.scm.disabled = false

我做了以下

  1. 签出了早期版本的源代码
  2. 将Sonar项目版本设置为1.0
  3. 创建了Cobertura报告(xml文件)
  4. 执行分析并检查分析是否已上传,单元测试的全部代码覆盖率是否正确显示
  5. 查看了最新版本的源代码
  6. 将Sonar项目版本设置为2.0
  7. 执行分析并检查分析是否已上传,单元测试的全部代码覆盖率是否正确显示
  8. 由于我对已更改的代码实施了一些单元测试,因此单元测试对代码的整体代码覆盖率有所提高。然而,窗口小部件中的 On New Code 项保持隐藏,并且不显示新代码的代码覆盖率。

    你们有没有任何可以为此带来更多启示的提示?

    谢谢大家。

1 个答案:

答案 0 :(得分:0)

您正在观察此行为,因为新代码的覆盖率目前根据之前分析的日期(而不是之前分析的代码的提交日期)识别新代码,请参阅{ {3}}。

要使您的方案正常工作,您必须使用-Dsonar.projectDate强制分析旧代码的过去日期。这里有好文章:SONAR-7085