Gradle - 当从命令行 运行 时,Corda 流测试失败

Gradle - Corda flow tests fail when run from the command line

在我的项目中,我有一个模块,其中包含用 Kotlin 编写并使用 JUnit 的 Corda 流测试。大多数测试都通过了,除了流量测试

我的假设是,这是因为 Corda 流测试需要在命令行中 -ea -javaagent:lib/quasar.jar...

在我的 gradle.build 文件中添加了

test {
    jvmArgs "-ea -javaagent:lib/quasar.jar"
}

然后从命令行我是 运行 ./gradlew test 但我从流测试中得到这些错误:

java.lang.IllegalStateException

kotlin.UninitializedPropertyAccessException

进一步调查

运行 ./gradlew test --info 建议完全忽略 jvm 参数:

com.acme.FlowTests > Issuance flow should be signed by the initiator FAILED java.lang.IllegalStateException: Missing the '-javaagent' JVM argument. Make sure you run the tests with the Quasar java agent attached to your JVM. See https://docs.corda.net/troubleshooting.html - 'Fiber classes not instrumented' for more details.

kotlin.UninitializedPropertyAccessException: lateinit property network has not been initialized

问题是我在错误的模块中指定了 jvmArgs。将以下行添加到包含测试的模块的 gradle.build 修复了问题:

test.jvmArgs = ["-ea", "-javaagent:../lib/quasar.jar"]