"Покрытие проекта установлено на 0%" - JaCoCo и Sonar в Jenkins с Ant

Я перенес свою работу с одной машины Hudson на многоведомую среду Jenkins, и теперь покрытие JaCoCo больше не работает.

РАБОТАЕТ (старая версия): Hudson 2.0.1, Jenkins Sonar Plugin 1.7.1, Sonar 2.1.2

BROKEN (новые): Jenkins 1.446, Jenkins Sonar Plugin 1.7.2, Sonar 2.1.2

Моя работа в Hudson называется Pinnacle, и раньше она выполнялась на одном сервере Hudson с Sonar на той же машине. Я настроил свою сборку (NO MAVEN), сделав следующее.

1) Добавил Ant-цель в build.xml под названием test-with-coverage

2) Настроил задание Pinnacle в Hudson на "вызов отдельного анализа Sonar" с такими свойствами:

sonar.projectKey=com.skyboximaging:pinnacle
sonar.projectName="Pinnacle"
sonar.projectVersion=1.0
sources=Pinnacle/src/java
tests=Pinnacle/test/java
binaries=Pinnacle/classes
sonar.jacoco.reportPath=Pinnacle/jacoco.exec
sonar.jacoco.antTargets=test-with-coverage

(Обратите внимание, что код проверяется в каталоге Pinnacle в рабочем пространстве задания Jenkins.)

3) Настроил "общие параметры" Sonar на использование JaCoCo для покрытия кода

Все работало прекрасно!

Но в новой среде Jenkins я вижу эту ошибку в выводе сборки Jenkins:

23:15:17.863 INFO  Sensor JaCoCoSensor...
23:15:17.868 INFO  Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/workspace/Pinnacle/Pinnacle/jacoco.exec

Этот файл не существует на ведомом устройстве, на котором выполнялась сборка. (Каталог /var/lib/jenkins/workspace/Pinnacle/Pinnacle существует.)

Все остальные датчики (FindBugs, PMD и т.д.) работают нормально. Только JaCoCo сломан.

Работает ли Sonar/JaCoCo вообще в многоведомой среде Jenkins?

Я подозреваю, что задача Ant test-with-coverage не выполняется. Как Sonar находит build.xml? И чем отличаются старые и новые установки?

7
задан thSoft 8 May 2014 в 14:27
поделиться