从IntelliJ运行Corda流测试时出错

时间:2017-11-21 10:55:39

标签: corda

当我从IntelliJ运行Corda流测试时,测试失败并出现以下错误:

  

QUASAR警告:Quasar Java Agent没有运行。如果您正在使用   另一种仪器方法你可以忽略这条消息;除此以外,   请参阅Quasar的“入门”部分   文档。

  

java.lang.IllegalStateException:缺少' -javaagent' JVM   论点。确保使用Quasar java代理运行测试   附加到您的JVM。见https://docs.corda.net/troubleshooting.html    - '光纤类没有检测'了解更多详情。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:14)

Corda流程需要在运行之前使用Quasar进行检测,以便在执行中暂停它们。

要在IntelliJ中实现此目的,您需要:

  • 为测试创建运行配置
  • 打开运行配置并将VM选项更改为-ea -javaagent:PATH-TO-QUASAR-JAR
    • 在CorDapp示例和模板中,quasar.jar位于lib/quasar.jar,因此您使用-ea -javaagent:../lib/quasar.jar

或者,您可以编辑默认的JUnit运行配置以默认使用Quasar javaagent,避免每次选择要运行的新测试时都必须执行此操作。

答案 1 :(得分:5)

如果你没有设置Quasar,这是一个基本的错误,你需要选择你的测试 - >去Intellij顶部吧 - >运行 - >编辑配置,然后在VM选项中像这张照片一样设置: enter image description here

答案 2 :(得分:0)

来自模板自述文件

  

我们建议您编辑IntelliJ首选项,以便使用Gradle Runner-这意味着quasar utils插件将确保为您设置了一些标志(例如-javaagent-参见下文)。

     

要切换为使用Gradle跑步器,请执行以下操作:

     

导航至构建,执行,部署->构建工具-> Gradle->   运行器(或搜索运行器)Windows:这是在“设置” MacOS中:   这是在“首选项”中,将“ Delegate IDE构建/运行操作”设置为   gradle”设置为true如果将“运行测试使用:”设置为“ Gradle Test Runner”   宁愿使用内置的IntelliJ JUnit测试运行程序,您可以   运行gradlew installQuasar,它将您的类星体JAR文件复制到   lib目录。然后,您需要指定-javaagent:lib / quasar.jar   并将每个测试的运行目录设置为项目根目录。