https://github.com/gradle/gradle/issues/6172#issuecomment-409883128に基づく
遅延タスク構成と Gradle 5 を考慮に入れるために 2020 年に修正されました。古いバージョンについては、回答の履歴を参照してください。
plugins {
id "java"
}
def test = tasks.named("test") {
useJUnitPlatform {
excludeTags "integration"
}
}
def integrationTest = tasks.register("integrationTest2", Test) {
useJUnitPlatform {
includeTags "integration"
}
shouldRunAfter test
}
tasks.named("check") {
dependsOn integrationTest
}
ランニング
gradlew test
統合せずにテストを実行します
gradlew integrationTest
統合テストのみを実行します
gradlew check
test
続いて実行されますintegrationTest
gradlew integrationTest test
が実行され、その後に
注記がtest
続きます。integrationTest
shouldRunAfter
歴史
ヒント
注:上記は機能しますが、IntelliJ IDEA は物事を推測するのに苦労しているため、すべてが入力され、コード補完が完全にサポートされているこのより明示的なバージョンを使用することをお勧めします。
... { Test task ->
task.useJUnitPlatform { org.gradle.api.tasks.testing.junitplatform.JUnitPlatformOptions options ->
options.includeTags 'integration'
}
}
build.gradle.kts
Gradle 5.6.4 のすべてのモジュールで統合テストを構成するためのルート プロジェクト Kotlin DSL ドロップイン
allprojects {
plugins.withId("java") {
@Suppress("UnstableApiUsage")
this@allprojects.tasks {
val test = "test"(Test::class) {
useJUnitPlatform {
excludeTags("integration")
}
}
val integrationTest = register<Test>("integrationTest") {
useJUnitPlatform {
includeTags("integration")
}
shouldRunAfter(test)
}
"check" {
dependsOn(integrationTest)
}
}
}
}