У меня есть проект A, который находится в этой структуре:
A
| Backend code( contain unit test) this will build and deploy in wildfly container in docker
| integration test( call to BE code)
В моем проекте уже был гидролокатор, чтобы показать покрытие модульного теста, но сейчас я хочу показать интеграционный тест.
Я проверил много ответов в Google и быстро нашел это решение. - (1) копирует jaroco jar runtime jar в том, который используется совместно с контейнером docker https://www.eclemma.org/jacoco/trunk/doc/agent.html, для этого я обновил файл docker до
services:
A:
environment:
- JAVA_OPTS=-javaagent:/opt/wildfly/jacocoagent.jar=destfile=/tmp/jacoco/jacoco.exec,output=tcpserver,address=*
- (2) Запустите тестирование, чтобы jacoco сгенерировал файл jacoco-it.exe c и заполнили данные в jacoco.exe c
- (3) Смонтируйте файл jacoco.exe c так что сонар может сканировать и показывать.
Вот мой файл gradle
sonarqube {
properties {
property "sonar.junit.reportPaths", "${project.buildDir}/test-results, ${project.buildDir}/test-results/test"
property "sonar.jacoco.reportPaths", "${project.buildDir}/jacoco/test.exec"
property "sonar.jacoco.itReportPath", "${project.buildDir}/jacoco/testIntegration.exec"
}
}
Сейчас я на шаге 1, я вижу, что jacocoagent.jar запущен и прослушивание с портом 6300. но файл jacoco.exe c не создается во время запуска контейнера.
Я не знаю Правильный ли этот шаг или нет? и будет ли файл jacoco.exe c создаваться сразу после запуска контейнера?