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

标签 gradle junit kotlin corda quasar

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

相关文章:

java - Spring-boot 和 Gradle : too long build time - how to debug?

git - 从 Bitbucket 克隆到本地 Android Studio 项目

java - JUnit ClassRule 在 Spring Boot 应用程序关闭之前执行代码

java - Junit 4 全局设置和拆卸

android - 未解析的引用 :toUpperCase Kotlin

android - 如何调试失败的 Android Gradle 构建?

android - 如何将应用程序 key 存储在本地单独的文件中并从那里加载到 build.gradle 中?

java - 模拟未被注入(inject)

kotlin - 在 kotlin 中可变的列表类型可以在 java 中使用吗?

kotlin - Kotlin 编程语言中的析构函数