在我的项目中,我有一个模块,其中包含用Kotlin编写的Corda流测试,并使用JUnit。除流量测试外,大多数测试都通过了
我的假设是,这是因为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>发行流程应由发起人FAILED签署 java.lang.IllegalStateException:缺少'-javaagent'JVM参数。确保使用附加到JVM的Quasar java代理运行测试。有关更多详细信息,请参阅https://docs.corda.net/troubleshooting.html - “未检测的光纤类”。
kotlin.UninitializedPropertyAccessException:lateinit属性网络尚未初始化
答案 0 :(得分:3)
问题是我在错误的模块中指定了jvmArgs
。将以下行添加到包含测试的模块的gradle.build
修复了该问题:
test.jvmArgs = ["-ea", "-javaagent:../lib/quasar.jar"]