моя настройка:
- Дженкинс 1.448
- Сонар 2.13
- Плагин Jenkins Sonar 1.72
- база данных MySql для Sonar
У меня есть следующий проект:
- Проект плагина Eclipse
- используя Maven
- несколько модулей (родительский проект maven, проект исходного плагина, проект тестового фрагмента)
- простой тест JUnit, тестирующий класс исходного проекта плагина
Каков процесс на данный момент:
- Дженкинс извлекает родительский проект из SVN
- Дженкинс строит проект и его модули, используя Maven и Tycho.
- Jenkins использует Surefire для выполнения тестов и создания отчета.
- Jenkins использует плагин Jenkins Sonar для запуска mvn sonar: sonar для выполнения анализа кода
- Статический анализ кода выполняется для каждого модуля
- JaCoCo терпит неудачу
Сонар имеет доступную статистику статического анализа кода и показывает процент успешных испытаний. Единственное, чего не хватает, - это покрытия кода JaCoCo ... или, может быть, даже покрытия кода Cobertura.
На данный момент мне все равно, я просто хочу, чтобы одна из этих вещей дала результаты покрытия кода.
Cobertura, похоже, не может дать результаты, возможно, потому что либо - он не может инструментировать код - он ищет инструментальный код в неправильном месте - он не может справиться с Tycho или отдельной настройкой исходного / тестового кода
JaCoCo должна иметь возможность "отслеживать" покрытие кода на лету, но его результат
[INFO] [17:44:04.708] Sensor JaCoCoSensor...
[INFO] [17:44:04.717] Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/jobs/testPlugin/workspace/testSource/target/jacoco.exec
[INFO] [17:44:04.854] Sensor JaCoCoSensor done: 146 ms
[INFO] [17:44:10.587] Sensor JaCoCoSensor...
[INFO] [17:44:10.587] Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/jobs/testPlugin/workspace/testTest/target/jacoco.exec
[INFO] [17:44:10.631] Sensor JaCoCoSensor done: 44 ms
[INFO] [17:44:12.402] Sensor JaCoCoSensor...
[INFO] [17:44:12.402] Project coverage is set to 0% as build output directory doesn't exists: /var/lib/jenkins/jobs/testPlugin/workspace/testParent/target/classes
[INFO] [17:44:12.402] Sensor JaCoCoSensor done: 0 ms
Что я делаю неправильно? Нужно ли мне где-нибудь включать JaCoCo в моем pom.xml? Нужен ли мне верный огонь? Что мне нужно сделать, чтобы использовать Cobertura?