在我的项目中,我有一个模块,其中包含用 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"]
关于Gradle - 从命令行运行时,Corda 流测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50873607/