在IntelliJ管理容器中使用Arquillian进行调试

时间:2013-01-25 13:27:21

标签: jboss junit intellij-idea jboss-arquillian

我已多次尝试在托管容器环境中调试测试。

我收到错误,例如 JDWP传输错误套接字无法初始化。意味着我无法使用以下属性标记初始化arquillian。

我的arquillian.xml文件如下所示:

<arquillian xmlns="http://jboss.org/schema/arquillian"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://jboss.org/schema/arquillian
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<engine>
<property name="deploymentExportPath">target/arq.deployments</property>
</engine>

<container qualifier="jboss" default="true">
<protocol type="jmx-as7">
<property name="executionType">MANAGED</property>
</protocol>
<configuration>
<property name="javaVmArguments">-Xrunjdwp:transport=dt_socket,address=55407,server=y,suspend=y -Xmx512m -XX:MaxPermSize=128m</property>
</configuration>
</container>
</arquillian>

我错过了什么吗?

Screenshot

1 个答案:

答案 0 :(得分:5)

在这种情况下有3个JVM在运行。所以这是一个特殊的调试案例。

  1. 1st JVM-&gt;由Arquillian / Junit开始执行测试。
  2. 2nd JVM-&gt;由Arquillian开始运行托管Jboss。
  3. 3rd JVM-&gt;这是一个远程调试配置,必须移植到JVM 数字2以便调试第二个JVM。查看此blog
  4. 所以这就是想法,Run test(第二个JVM将暂停,直到JVM连接到它),然后运行一个新的远程配置,一旦启动,过去的JVM就会运行

    这有点令人困惑,但有效。

    请注意,如果您在简单调试模式下只有2个JVM,那么您将调试arquillian / junit JVM,这不是您感兴趣的JVM。

    enter image description here