Я использую Jenkins + Jacoco + Sonarqube для тестирования своего кода. В Jenkins моя команда mvn:
clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true sonar:sonar
И после сборки я добавляю действие «запись отчета о покрытии jacoco».
Но в результате Дженкинс работает следующим образом:
Он показывает отчет о покрытии и другую информацию. Но я не могу получить процент покрытия в sonarQube, поэтому невозможно пройти через порог качества в Sonarqube.
Я предполагаю, что эхолот не может найти отчет о покрытии, потому что его нет на вкладке «Код» в SonarQube.
Пожалуйста, помогите мне, мне отчаянно нужно решение.
сонар читает файл jacocoexec, созданный при выполнении плагина, вы можете использовать целевой файл вашего проекта, если файл создается, если путь к файлу отличается, вам необходимо указать его в файле свойств сонара
Чтобы отображать ваше покрытие в SonarQube, вы должны настроить файл sonarqube.properties. В свойствах сонара есть параметр sonar.jacoco.reportPaths
. Вы должны добавить этот параметр, указав путь к вашему файлу jacoco.exec
. Например:
sonar.jacoco.reportPaths=yourpath/jacoco.exec
Спасибо, Аднан. Проблема в рабочем пространстве Jenkins, у меня jacoco.exec. Но этого файла нет в Sonar. У меня только файлы .java.