SonarQube - единство тестов покрытия кода на новый код не работает

Я пытаюсь провести анализ сонара с охватом кода модульных тестов для нового кода. Когда я выполняю анализ покрытия кода с помощью cobertura и выполняю анализ Sonar, общий охват кода отображается правильно, однако охват нового кода не отображается.

Настройки:

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

Я сделал следующее

  1. проверил более раннюю версию исходного кода
  2. установить версию проекта Sonar на 1.0
  3. созданный отчет Cobertura (файл xml)
  4. выполнил анализ и проверил, что анализ был загружен, покрытие общего кода модульными тестами отображалось корректно
  5. проверил последнюю версию исходного кода
  6. установить версию проекта Sonar на 2.0
  7. выполнил анализ и проверил, что анализ был загружен, покрытие общего кода модульными тестами отображалось корректно

Общее покрытие кода модульными тестами увеличилось, поскольку я реализовал некоторые модульные тесты для кода, который был изменен. Однако элемент " Новый код" в виджете остается скрытым, и покрытие нового кода не отображается.

У кого-нибудь из вас есть советы, которые могли бы пролить свет на это?

Спасибо вам всем.

1 ответ

Решение

Вы наблюдаете это поведение, потому что Coverage для нового кода в настоящее время идентифицирует новый код на основе даты предыдущего анализа (а не даты принятия кода, ранее проанализированного), см. SONAR-7085.

Для того, чтобы ваш сценарий работал, вы должны принудительно установить прошедшую дату для анализа старого кода, используя -Dsonar.projectDate, Хорошая статья об этом прямо здесь: сонарная машина времени: переигрывание прошлого.

Другие вопросы по тегам