Мы используем инструмент Gradle 3.3 и jacoco версии 0.7.6.201602180812. У нас есть такой многопроект Gradle:
- parent
- prod1
- prod2
- prod3
- int-test
Мы используем модульные тесты, проверяющие исходники проекта и jacoco для всех дочерних проектов, создающих файлы test.exec. У нас есть дополнительные интеграционные тесты в проекте int-test, добавляющие результаты jacoco в test-exec в проекте int-test. Мы используем плагин sonarqube gradle (2.2.1) в родительском проекте, чтобы собрать все для сервера SonarQube v6.2.
Everything runs fine with tests that test sources in their own project: The code coverage is measured in the jacoco reports as well as on SonarQube.РЕДАКТИРОВАТЬ Вот небольшой тестовый проект: https://github.com/MichaelZett/coveragetest Запуск
'build smokeTest sonarqube' приводит к:
- Выполнение всех тестов
- создание файлов jacoco / test.exec и test-results / test / ... во всех дочерних проектах
- парсинг их в sonarqube
- правильное измерение покрытия для тестов, которые тестируют исходники в своих проектах
- отсутствует покрытие для тестов, которые тестируют исходники в другом проекте