如何为新的Gradle测试套件配置JVM参数?

3
我正在尝试使用Gradle的新TestSuit。我的项目中有以下内容:
testing {
    suites {
        val integrationTest by registering(JvmTestSuite::class) { 
            useJUnitJupiter()
            jvmArgs("--add-opens", "java.base/java.lang=ALL-UNNAMED")
            jvmArgs("--add-opens", "java.base/java.lang.invoke=ALL-UNNAMED")
        }
}

但是当我运行./gradlew integrationTest时,我得到了以下结果:
/buildSrc/src/main/kotlin/quarkus-testing.quarkus-conventions.gradle.kts: (35, 13): Unresolved reference: jvmArgs

如何配置 jvmArgs?
1个回答

0

我最近通过从JvmTestSuite对象到包含jvmArgs引用的Test对象,逐级向下进行层次结构处理来解决了这个问题。

testing {
    suites {
        val integrationTest by registering(JvmTestSuite::class) {
            useJUnitJupiter()

            // here:  really calling JvmTestSuite#getTargets() then,
            //        DomainObjectCollection#all(Action)
            targets.all {
                // here:  really calling JvmTestSuiteTarget#getTestTask() then,
                //        TaskProvider#configure(Action)
                testTask.configure {
                    // now we're operating on a Test instance
                    jvmArgs("--add-opens", "java.base/java.lang=ALL-UNNAMED")
                    jvmArgs("--add-opens", "java.base/java.lang.invoke=ALL-UNNAMED")
                }
            }
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接