0

Java EE 7 コンポーネントに対していくつかのテストを実行したいと考えています。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 コンソールにはデプロイとコンソール出力が期待どおりに表示されます)。ただし、デバッガーはまだブレークポイントで停止しません。通常の JUnit テストとして Intellij Idea から開始します。各テストの開始時に表示される警告は次のとおりです。

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

ここで何が間違っていますか?

4

1 に答える 1

2

デバッガーを実行するには、リモート サービスとして wildfly に接続する必要があります。デバッグ テスト オプションは、テストのクライアント側のみをデバッグし、サーバー側の実行はデバッグしません。

これらの手順は、接続に役立つはずです。 https://www.jetbrains.com/idea/help/run-debug-configuration-remote.html

このセットアップではリモート サーバーを使用するのが最適だと思います。これは、起動時にデバッガーを接続でき、テスト実行の一部として時間を計る必要がないためです。

于 2015-11-22T02:27:34.583 に答える