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"]
在我的项目中,我有一个模块,其中包含用 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"]