файл исправления не найден в отчете Sonar JaCoCo - PullRequest
0 голосов
/ 05 июля 2018

Я хотел бы устранить предупреждения в моем журнале сонара:

INFO: Sensor Groovy JaCoCo [groovy]
INFO:   Checking binary directory: /home/project/target/classes
INFO: Analysing /home/project/target/jacoco.exec
INFO: Analysing /home/project/target/jacoco.exec
WARN: File not found: utils/Rule.groovy
WARN: File not found: com/acme/manager/Command.groovy
WARN: File not found: com/acme/manager/util/YamlReader.groovy
WARN: File not found: steps/DeployTest.groovy
WARN: File not found: /deploy.groovy

Мои настройки:

x.sonar.projectBaseDir=.
x.sonar.sources=src,vars
x.sonar.tests=test/groovy
x.sonar.test.exclusions=test/groovy/com/acme/manager

Некоторые предупреждения относятся к файлам исключений (эти файлы оцениваются в другом модуле сонара). Но другие не должны быть проблемой. Есть идеи, что здесь не так?

В Сонаре я получаю покрытие для файлов под src/com/acme/anything, но не из папки vars (пакет default). Однако в html-отчете JaCoCo у меня есть пакет default и покрытие для папки vars.

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Тем временем я нашел причины для некоторых сообщений:

  1. File not found: /deploy.groovy: из-за проблемы с обработкой файлов в плагине sonar groovy пустые пакеты обрабатываются некорректно, см. проблема # 73
  2. File not found: steps/DeployTest.groovy: тестовые файлы должны быть перечислены в sonar.source для распознавания. Однако, если tests/groovy добавлено к sonar.source, оно не может быть добавлено к sonar.tests, что вызывает проблемы с ресурсами в GroovySurefireSensor: WARN: Resource not found: steps/DeployTest.groovy
0 голосов
/ 31 августа 2018

Предупреждения File not found записываются классом AbstractAnalyzer.java плагина SonarGroovy. Насколько я понимаю, плагин успешно обнаружил ваши результаты jacoco.exec (который содержит те пути к файлам, как utils/Rule.groovy, которые он не может найти).

Возможно, вы неправильно установили sonar.sources, он должен содержать путь к исходному коду Groovy, а также папку vars, если у вас есть исходный код Groovy. По умолчанию для sonar.sources установлено только src, поэтому код вашей папки vars может быть не найден. Вы можете попробовать добавить отсутствующие папки в источники следующим образом:

sonar.sources=src,vars

Свойство sonar.groovy.binaries также необходимо для покрытия кода Groovy (оно должно указывать на скомпилированные файлы классов Groovy), если вы не установите его явно, тогда sonar.binaries будет использоваться для поиска двоичных файлов Groovy. Следующая цитата с сайта SonarGroovy также может быть полезна:

При анализе отчетов JaCoCo плагину groovy требуется доступ к исходным двоичным файлам. Следовательно, для анализа необходимо настроить свойство sonar.groovy.binaries (пути через запятую к двоичным папкам). Для проектов Maven и gradle свойство устанавливается автоматически.

...