Я боролся с импортом результатов юнит-тестов и покрытия кода из Jenkins в SonarQube. На данный момент я убедился, что результаты генерируются так, как они отображаются на странице проекта в Jenkins.
Файл sonar.properties показан ниже. Результаты php были созданы с помощью phpunit, а покрытие кода было создано с помощью phpunit и clover. Для устранения неполадок я включил sonar.php.coverage.reportPath и sonar.clover.reportPath.
sonar.projectKey=projectKey
sonar.projectName=projectKey
sonar.projectVersion=1.0
sonar.language=php
sonar.sourceEncoding=UTF-8
sonar.php.tests.reportPath=report/phpunitresults.xml
sonar.php.coverage.reportPath=report/clover_code_coverage.xml
sonar.clover.reportPath=report/clover_code_coverage.xml
sonar.sources=./src/
sonar.exclusions=./src/tests/**
sonar.tests=./src/tests/
sonar.coverage.exclusions=./src/tests/**/*.php
Все результаты
Охват модульных тестов
0,0%
Линия покрытия
0,0%
Сборки Jenkins не выдают никаких ошибок или полезной информации при определении проблемы, объясняющей, почему результаты не импортируются.
Кто-нибудь может помочь в устранении проблемы?
Благодарю.
Моя проблема заключалась в том, что отчеты о покрытии были созданы на сервере, отличном от того, где sonar-scanner
был запущен, и абсолютные пути в clover.xml
различались.
Решение было исправить пути:
replace="s|/home/bamboo/project/|`pwd`/|g"sed -i -- $replace report/*.xml
Других решений пока нет …