java - 如何通过 Kotlin Gradle 和 -D 为我的测试提供系统属性

标签 java gradle kotlin spock

当我在 Gradle 中运行测试时,我想传递一些属性:

./gradlew test -DmyProperty=someValue

所以在我的 Spock 测试中,我将使用检索值:

def value = System.getProperty("myProperty")

我正在使用 kotlin gradle dsl。当我尝试使用本文档中的“tasks.test”时: https://docs.gradle.org/current/userguide/java_testing.html#test_filtering

'test' 在我的 build.gradle.kts 文件中无法识别。

我假设我需要使用类似于下面帖子中的答案的东西,但不清楚在使用 gradle kotlin DSL 时应该如何完成。

How to give System property to my test via Gradle and -D

最佳答案

您的链接问题的答案可以 1:1 翻译成 kotlin DSL。这是使用 junit5 的完整示例。

dependencies {
    // ...
    testImplementation("org.junit.jupiter:junit-jupiter:5.4.2")
    testImplementation(kotlin("test-junit5"))
}

tasks.withType<Test> {
    useJUnitPlatform()

    // Project property style - optional property.
    // ./gradlew test -Pcassandra.ip=xx.xx.xx.xx
    systemProperty("cassandra.ip", project.properties["cassandra.ip"])

    // Project property style - enforced property.
    // The build will fail if the project property is not defined.
    // ./gradlew test -Pcassandra.ip=xx.xx.xx.xx
    systemProperty("cassandra.ip", project.property("cassandra.ip"))

    // system property style
    // ./gradlew test -Dcassandra.ip=xx.xx.xx.xx
    systemProperty("cassandra.ip", System.getProperty("cassandra.ip"))
}

关于java - 如何通过 Kotlin Gradle 和 -D 为我的测试提供系统属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56628983/

相关文章:

kotlin - 如何使用进行错误检查的自定义 setter 初始化属性?

Java如何使用sparql删除查询

java - 在分配大量字符串数据的应用程序中优化字符串数据的最佳方法

android - Android Gradle依赖项冲突和资源重复值

android - 是否可以将 gradle 库项目集成到 android 项目中

kotlin - 在 Kotlin 中实现接口(interface)

json - jackson :反序列化后如何进行验证?

java - 如何使用类似 MS Access 的目录路径连接 MySQL 数据库文件 (.sql)?

java - 多种平台上的 LibGDX 开发

android - CardView和其他 View 未显示在android studio布局编辑器中