Как настроить отдельные задачи для отдельных тестовых тегов в многомодульном проекте?
У меня есть заданная многопроектная структура:
root
sub1
sub2
sub3
Я хочу как-то настроить в root, чтобы весь проект, использующий java, имел 2 отдельные задачи: 1. unit-test 2.интеграция-тест
каждый выполняет только тесты junit5 с данным тегом (все источники находятся в каталоге src/test/java, различие только по @Tag).
А также "тестовая" задача для этих проектов должна работать как совокупность для этих 2 (должна зависеть как от задач UT, так и от задач ИТ). Я использую kotlin DSL для конфигурации gradle.
Я попытался настроить его так:
subprojects {
version = "1.0-SNAPSHOT"
val utTask = tasks.create<Test>("unit-test") {
group = LifecycleBasePlugin.VERIFICATION_GROUP
useJUnitPlatform {
includeTags("unit-test")
}
}
val itTask = tasks.create<Test>("integration-test") {
group = LifecycleBasePlugin.VERIFICATION_GROUP
useJUnitPlatform {
includeTags("integration-test")
}
}
tasks.named("test") {
dependsOn(utTask)
dependsOn(itTask)
}
}
в модуле sub1 у меня есть конфиг как:
plugins {
java
}
dependencies {
// some dependencies here
}
Gradle дает ошибку, говоря:
Задача с именем 'test' не найдена в проекте ':sub1'.
В идеале было бы также настроить то же самое только для тех, у которых применен плагин 'Java' (поэтому не нужно настраивать не-Java-модули, т.е. модуль для пользовательского интерфейса js).
заранее спасибо