Как настроить отдельные задачи для отдельных тестовых тегов в многомодульном проекте?

У меня есть заданная многопроектная структура:

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).

заранее спасибо

0 ответов

Другие вопросы по тегам