2016-11-29 3 views
0

Сценарий ниже не работает для меня.SonarQube: качество покрытия ворот на новый код

я выполнил два анализа t1 и t2, как описано ниже

t1: Код с охватом 13,6% анализируется и отправляется на сервер SonarQube. Здесь я использую /d:sonar.projectDate=2016-11-24 как параметр для сканера. Это 61 строка кода в t1.

enter image description here

t2: Удален параметр даты. Добавлен новый код без покрытия, а также добавлены дублированные строки. Это 158 строк кода в t2. Покрытие снизилось до 3,8%. Это означает, что много кода было введено без ожидаемого покрытия.

enter image description here

Вопросы:

  1. Почему мой качество ворот до сих пор не подведет? Я использую калибровочные ворота по умолчанию для локального экземпляра. Все, что меньше 80%, должно быть неэффективным.
  2. Я вижу некоторые другие сообщения, в которых люди говорят, что SCM должен быть включен для этого. Каково было бы отношение? Кто-нибудь знает, как это покрытие на новом коде действительно рассчитано?
  3. Если я включил «common-cs: InsufficientLineCoverage», тогда качество ворот завершится с ошибкой. Но это не связано с тем, что существует на воротах качества, оно будет следовать за правилом правила, которое по умолчанию составляет 65%.

контекст, где это происходит:

  1. Локальный экземпляр с заданным по умолчанию профиля и качества Gates
  2. SonarQube 6,1
  3. Сканер 2.2.0.24
  4. C# Plugin 5.5.0.479

ответ

1
  • для определения е, что новый код, SonarQube зависит от SCM (фиксации даты) информации, представленной
  • параметр sonar.projectDate используется, чтобы переписать историю проекта, чтобы иметь развитие проблем, созданные в другой точке времени
  • если вы не можете используйте SCM plugin (почему бы и нет?), а затем измените качество Quality Gate на сбой, если общий охват ниже 80%. Ворота Quality Gate будут терпеть неудачу, пока покрытие проекта будет ниже 80%
+0

Почему не плагин SCM? Я готовил небольшую демонстрацию по функциям sonarqube + sonarlint, которые этого не требовали. Но вместо того, чтобы не плагин SCM, я бы спросил, зачем создавать или создавать зависимость от внешнего плагина, когда у вас уже есть projectDate. Или почему бы не позволить пользователю решить, какой из них использовать? –

Смежные вопросы