SonarQube:新代码的质量门覆盖率

时间:2016-11-29 19:16:52

标签: sonarqube

以下情况对我不起作用。

我按如下所述进行了两次分析t1和t2

t1:分析具有13.6%覆盖率的代码并将其发送到SonarQube服务器。这里我使用/d:sonar.projectDate=2016-11-24作为扫描仪的参数。在t1中有61行代码。

enter image description here

t2:删除了日期参数。添加了没有覆盖的新代码,并添加了一些重复的行。在t2中有158行代码。覆盖率降至3.8%。这意味着在没有预期覆盖范围的情况下引入了大量代码。

enter image description here

问题:

  1. 为什么我的质量门仍然没有失败?我在本地实例上使用默认质量门。任何低于80%的东西都应该没有质量门。
  2. 我看到其他一些帖子,人们说应该启用SCM才能使用它。那会是什么关系?有人知道如何真正计算新代码的覆盖范围吗?
  3. 如果我启用" common-cs:InsufficientLineCoverage"然后质量门失败了。但它与质量门上存在的thresold无关,它将遵循默认为65%的规则的thresold。
  4. 发生的背景:

    1. 使用默认配置文件和质量门的本地实例
    2. SonarQube 6.1
    3. 扫描仪2.2.0.24
    4. C#插件5.5.0.479

1 个答案:

答案 0 :(得分:1)

  • 能够确定什么是新代码,SonarQube依赖于提供的SCM(提交日期)信息
  • sonar.projectDate参数用于重写项目的历史记录,以便在不同时间点创建问题的演变
  • 如果您不能使用SCM plugin(为什么不?),那么如果整体覆盖率低于80%,则将质量门更改为失败。只要项目覆盖率低于80%
  • ,质量门就会失败