我想对JavaEE7组件运行一些测试。我读过一些关于Arquillian的文章,它似乎很适合解决这类问题。不过,我在配置方面遇到了问题。我设法让它在嵌入式GlassFish、托管WildFly和远程WildFly上运行。理想情况下,我希望对测试使用后面的选项,因为WildFly是我为应用程序选择的应用程序服务器,而远程模式将使用正在运行的服务器,而不是在每次我想运行测试时启动它。但是,将调试器附加到WildFly 9上却让我痛苦不已。
我在standalone.conf.bat中取消了这一行的注释:
set "JAVA_OPTS=%JAVA_OPTS% -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"并将以下部分添加到arquillian.xml中:
<engine>
<property name="deploymentExportPath">target/</property>
</engine>
<container qualifier="wildfly" default="true">
<protocol type="jmx-as7">
<property name="executionType">REMOTE</property>
</protocol>
<configuration>
<property name="javaVmArguments">-Xmx512m -XX:MaxPermSize=128m -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8787</property>
</configuration>
</container>测试本身被正确执行(我可以看到正确的测试结果,并且WildFly console会按照预期显示部署和控制台输出)。但是,调试器仍然不会在断点处停止。我从Intellij Idea开始,作为常规的JUnit测试。下面是我在每次测试开始时得到的警告:
WARNING: Configuration contain properties not supported by the backing object org.jboss.as.arquillian.container.remote.RemoteContainerConfiguration
Unused property entries: {javaVmArguments=-Xmx512m -XX:MaxPermSize=128m -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8787}
Supported property names: [managementAddress, password, managementPort, managementProtocol, username]
enter code here我在这里做错了什么?
发布于 2015-11-22 10:27:35
您需要连接到wildfly作为远程服务来执行调试器。debug test选项将只调试测试的客户端,而不会调试服务器端的执行。
这些说明应该可以帮助您建立联系。https://www.jetbrains.com/idea/help/run-debug-configuration-remote.html
我发现在这个设置中最好使用远程服务器,因为您可以在启动时连接调试器,而不必在测试执行过程中计时。
https://stackoverflow.com/questions/33829763
复制相似问题