SonarQube - единство тестов покрытия кода на новый код не работает
Я пытаюсь провести анализ сонара с охватом кода модульных тестов для нового кода. Когда я выполняю анализ покрытия кода с помощью cobertura и выполняю анализ Sonar, общий охват кода отображается правильно, однако охват нового кода не отображается.
Настройки:
- scm = Git
- sonar.scm.disabled = false
Я сделал следующее
- проверил более раннюю версию исходного кода
- установить версию проекта Sonar на 1.0
- созданный отчет Cobertura (файл xml)
- выполнил анализ и проверил, что анализ был загружен, покрытие общего кода модульными тестами отображалось корректно
- проверил последнюю версию исходного кода
- установить версию проекта Sonar на 2.0
- выполнил анализ и проверил, что анализ был загружен, покрытие общего кода модульными тестами отображалось корректно
Общее покрытие кода модульными тестами увеличилось, поскольку я реализовал некоторые модульные тесты для кода, который был изменен. Однако элемент " Новый код" в виджете остается скрытым, и покрытие нового кода не отображается.
У кого-нибудь из вас есть советы, которые могли бы пролить свет на это?
Спасибо вам всем.
1 ответ
Вы наблюдаете это поведение, потому что Coverage для нового кода в настоящее время идентифицирует новый код на основе даты предыдущего анализа (а не даты принятия кода, ранее проанализированного), см. SONAR-7085.
Для того, чтобы ваш сценарий работал, вы должны принудительно установить прошедшую дату для анализа старого кода, используя -Dsonar.projectDate
, Хорошая статья об этом прямо здесь: сонарная машина времени: переигрывание прошлого.