2016-11-29 57 views
0

以下情况对我无效。SonarQube:新代码的质量门覆盖范围

我进行两次分析t1和t2如下

T1描述:进行分析,并发送至服务器SonarQube代码与13.6%的覆盖率。这里我使用/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。

语境下它发生在哪里:

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

回答

1
  • 能够确定Ë什么是新的代码,SonarQube依赖于SCM(提交日期)所提供的信息
  • sonar.projectDate参数是用来改写项目的历史上有不同点的时间
  • 产生问题的演变,如果你不能使用SCM plugin(为什么不?),如果整体覆盖率低于80%,则更改质量门失败。只要项目覆盖率低于80%,质量门就会失败
+0

为什么不使用SCM插件?我正在准备一个sonarqube + sonarlint功能的小演示,并不需要它。但是,而不是为什么不SCM为什么不问,当你已经有一个projectDate时,为什么耦合或创建一个外部插件的依赖。或者为什么不让用户决定使用哪一个? –