2016-11-12 2 views
1

При выполнении сонара-сканер с примера проекта доступен по адресу: https://github.com/SonarSource/sonar-examples/tree/b0ebd45081e58c3cb7c660287d5ed7fb9c64bb17/projects/languages/php/php-sonar-runner-unit-testsSonarqube сканер не может решить относительный путь к файлу в PHPUnit покрытия файла XML

Я получаю следующее предупреждение, а данные покрытия не передается на хост эхолота :

WARN: Could not resolve 1 file paths in phpunit.coverage.xml, first unresolved path: src/Math.php 

Полный вывод команды:

[email protected]:/home/test/sonar-examples-master/projects/languages/php/php-sonar-runner-unit-tests# /home/sonar-scanner-2.8/bin/sonar-scanner 
INFO: Scanner configuration file: /home/sonar-scanner-2.8/conf/sonar-scanner.properties 
INFO: Project root configuration file: /home/test/sonar-examples-master/projects/languages/php/php-sonar-runner-unit-tests/sonar-project.properties 
INFO: SonarQube Scanner 2.8 
INFO: Java 1.8.0_111 Oracle Corporation (64-bit) 
INFO: Linux 4.4.27-boot2docker amd64 
INFO: User cache: /root/.sonar/cache 
INFO: Load global repositories 
INFO: Load global repositories (done) | time=240ms 
INFO: User cache: /root/.sonar/cache 
INFO: Load plugins index 
INFO: Load plugins index (done) | time=24ms 
INFO: SonarQube server 6.1 
INFO: Default locale: "en", source code encoding: "UTF-8" 
INFO: Process project properties 
INFO: Load project repositories 
INFO: Load project repositories (done) | time=141ms 
INFO: Load quality profiles 
INFO: Load quality profiles (done) | time=55ms 
INFO: Load active rules 
INFO: Load active rules (done) | time=141ms 
WARN: SCM provider autodetection failed. No SCM provider claims to support this project. Please use sonar.scm.provider to define SCM of your project. 
INFO: Publish mode 
INFO: ------------- Scan PHP :: PHPUnit :: SonarQube Scanner 
INFO: Language is forced to php 
INFO: Load server rules 
INFO: Load server rules (done) | time=76ms 
INFO: Base dir: /home/test/sonar-examples-master/projects/languages/php/php-sonar-runner-unit-tests 
INFO: Working dir: /home/test/sonar-examples-master/projects/languages/php/php-sonar-runner-unit-tests/.sonar 
INFO: Source paths: src 
INFO: Test paths: tests 
INFO: Source encoding: UTF-8, default locale: en 
INFO: Index files 
INFO: 3 files indexed 
INFO: Quality profile for php: Sonar way 
INFO: Sensor Lines Sensor 
INFO: Sensor Lines Sensor (done) | time=25ms 
INFO: Sensor NoSonar Sensor 
INFO: Sensor NoSonar Sensor (done) | time=65ms 
INFO: Sensor SCM Sensor 
INFO: No SCM system was detected. You can use the 'sonar.scm.provider' property to explicitly specify it. 
INFO: Sensor SCM Sensor (done) | time=0ms 
INFO: Sensor PHP sensor 
INFO: 2 source files to be analyzed 
INFO: 2/2 source files have been analyzed 
INFO: Analyzing PHPUnit test report: reports/phpunit.xml with [email protected] 
INFO: Analyzing PHPUnit unit test coverage report: reports/phpunit.coverage.xml with PHPUnit Unit Test Coverage Result Parser 
WARN: Could not resolve 1 file paths in phpunit.coverage.xml, first unresolved path: src/Math.php 
INFO: No PHPUnit integration test coverage report provided (see 'sonar.php.coverage.itReportPath' property) 
INFO: No PHPUnit overall coverage report provided (see 'sonar.php.coverage.overallReportPath' property) 
INFO: Sensor PHP sensor (done) | time=1419ms 
INFO: Sensor Analyzer for "php.ini" files 
INFO: Sensor Analyzer for "php.ini" files (done) | time=11ms 
INFO: Sensor Zero Coverage Sensor 
INFO: Sensor Zero Coverage Sensor (done) | time=49ms 
INFO: Sensor Code Colorizer Sensor 
INFO: Sensor Code Colorizer Sensor (done) | time=1ms 
INFO: Sensor CPD Block Indexer 
INFO: DefaultCpdBlockIndexer is used for php 
INFO: Sensor CPD Block Indexer (done) | time=2ms 
INFO: Calculating CPD for 2 files 
INFO: CPD calculation finished 
INFO: Analysis report generated in 96ms, dir size=27 KB 
INFO: Analysis reports compressed in 18ms, zip size=13 KB 
INFO: Analysis report uploaded in 115ms 
INFO: ANALYSIS SUCCESSFUL, you can browse http://***.elasticbeanstalk.com/dashboard/index/org.sonarqube:php-ut-sq-scanner 
INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report 
INFO: More about the report processing at http://***.elasticbeanstalk.com/api/ce/task?id=AVhaEXKjVjsdBlz4sGdU 
INFO: Task total time: 3.511 s 
INFO: ------------------------------------------------------------------------ 
INFO: EXECUTION SUCCESS 
INFO: ------------------------------------------------------------------------ 
INFO: Total time: 5.098s 
INFO: Final Memory: 42M/149M 
INFO: ------------------------------------------------------------------------ 

Когда я изменить путь к абсолютной в PHPUnit. coverage.xml, похоже, работает в Linux. В Windows Docker быстрого запуска терминала (MINGW64) единственный способ сделать это работа с помощью окна стиле абсолютные пути: C: \ Users \ имя пользователя \ проекты \ PHP-сонара-бегуна-юнит-тесты

ли есть ли способ заставить его работать с относительными путями?

ответ

1

Цитируя README (на той же странице, что вы связаны):

  • В "Отчеты/phpunit.coverage.xml", измените путь "SRC/Math.php" в полный путь этого файла на вашем компьютере.

Вы должны использовать абсолютный путь. Он не работает с относительными путями.

Обратите внимание, что это всего лишь пример файла отчета о покрытии, используя один предварительно сгенерированный PHPUnit (также упоминаемый в README). Обычно вы создаете файл отчета о покрытии самостоятельно перед запуском анализа SonarQube, и в этом случае он будет иметь правильный абсолютный путь в вашей системе.

+0

Спасибо Янош. Я полностью пропустил этот комментарий об изменении пути. Фактически я использую собственный созданный файл покрытия. Однако я запускаю phpunit внутри контейнера докеров, поэтому он генерирует пути в стиле Linux. Сканер Sonar, однако, я запускаю с главной машины Windows. В этом случае, я думаю, у меня нет другого выбора, кроме как выполнить поиск и заменить в файле отчета. –

+0

Вы не можете запустить сканер сонара в контейнере докера? – janos

+0

Я мог бы это сделать. Поскольку это проект PHP, я не хотел устанавливать Java в него. Сегодня я попробовал другой подход: я сопоставил файлы PHP в виде тома в контейнере сканера сонарного Java, а затем он работает достаточно хорошо. –

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

  • Нет связанных вопросов^_^