运行 验收测试作为单独的 Gradle 任务

Run Acceptance tests as a separate Gradle task

我正在尝试为我的项目配置 Gradle with Kotlin DSL。它由两个模块组成。 模块 A 是一个简单的 Java 11 应用程序。 模块 B 包含使用 Spek.

Kotlin 中编写的验收测试

我想配置 gradle 以便 gradle test 不会 运行 验收测试,并且这些测试 运行 仅用于任务 gradle acceptanceTest。我在下面尝试使用其他过滤器变体进行配置,包括和排除但没有成功。我错过了什么?

tasks.withType<Test> {
    println("always printed: configuration phase test")

    useJUnitPlatform()

    filter {
        exclude("acceptance.*")
    }

    doLast {
        println("only printed if executed: execution phase test")
    }

}

val acceptanceTest: Task by tasks.creating(Test::class) {
    println("always printed: configuration phase ac")

    useJUnitPlatform {
        includeEngines("spek2")
    }

    filter {
        include("acceptance.*")
    }

    doLast {
        println("only printed if executed: execution phase ac")
    }
}

过滤器是不必要的。我只是在错误的地方执行了 acceptanceTest 任务...移动到 acceptance 模块后,它按预期工作。