Похоже, что вам нужно сказать build.gradle, где ваши ИНТЕГРАЦИЯ тесты (т.е. папка, содержащая те IT тесты) с использованием sourceSets. В моем случае у меня есть источник в src/java (вместо src/main/java - gradle default). Мои юниты (Junit) в папке test/java и мои тесты интеграции в папке src/java-test.
sourceSets {
main {
java {
srcDir 'src/java'
}
}
test {
java {
srcDir 'test/java'
}
resources {
srcDir 'test/resources'
srcDir 'conf'
}
}
integrationTest {
java {
srcDir 'src/java-test'
}
}
}
Тогда у меня есть integrationTest задание как ... который вы можете настроить, как вы, возможно, не cleanTest (пользовательское задание, которое я создал), так что вы можете игнорировать, что dependsOn ... я думаю, что в вашем случае вы будете использовать что-то вроде jettyStart, как вы используете, что для IT-тестов (начиная контейнер для запуска ИТ-тестов, а затем функции finalizedBy остановить причал .. пристань плагин)
task integrationTest(type: Test, dependsOn: cleanTest) {
jacoco {
//destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
destinationFile = file("$buildDir/jacoco/integrationTest.exec")
//classDumpFile = file("$buildDir/jacoco/classpathdumps")
classDumpFile = file("$buildDir/classes/integrationTest")
}
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
}
SEE этого пост для более подробного вывода структуру и сценарий, которые у меня есть в конце. Я получаю .exec для обоих модульных тестов (test.exec) и ИТ-тестов intergrationTest.exec .. но я не получаю отчеты jacoco.xml/jacocoHtml для обоих тестов. Я также обнаружил, что если я запустил «градиентную чистую сборку» (включающую вызов «тестовой» задачи) и «gradle clean build integrationTest», то позже одна перезаписывает данные единичных тестов в папке с сборкой/тестированием результатов и сборке/отчетах/тестовой папке.
Jacoco Unit and Integration Tests coverage - individual and overall
Примечание: в моем случае, jacocoTestReport определяется в глобальной папке Gradle init.d в одном из общего Gradle файла. Это поможет нам не включать один и тот же код во все/на уровне проекта build.gradle.