2016-11-29 95 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時,爲什麼耦合或創建一個外部插件的依賴。或者爲什麼不讓用戶決定使用哪一個? –