2

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

设置:

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

我做了以下

  1. 签出早期版本的源代码
  2. 将 Sonar 项目版本设置为 1.0
  3. 创建 Cobertura 报告(xml 文件)
  4. 执行分析并检查分析是否已上传,单元测试的整体代码覆盖率正确显示
  5. 签出最新版本的源代码
  6. 将 Sonar 项目版本设置为 2.0
  7. 执行分析并检查分析是否已上传,单元测试的整体代码覆盖率正确显示

由于我对已更改的代码实施了一些单元测试,因此单元测试对代码的整体代码覆盖率有所增加。但是,小部件中的On New Code项目保持隐藏状态,并且不显示新代码的代码覆盖率。

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

谢谢你们。

4

1 回答 1

2

您正在观察此行为,因为Coverage on new code当前根据先前分析的日期(而不是先前分析的代码的提交日期)识别新代码,请参阅SONAR-7085

为了使您的方案正常工作,您必须强制使用过去的日期来分析旧代码,使用-Dsonar.projectDate. 好文章就在这里:声纳时间机器:重播过去

于 2016-01-29T14:20:00.630 回答