私はmaven/surefire/Eclipseを使用してコードを記述し、後でそれをテスト/デバッグしています。
これを行う標準的な方法は、maven.surefire.debugmavenプロパティを使用することです。デフォルトでは、このプロパティが有効になっていると、mavenはポート5005でリッスンを開始し、リモートデバッガーを使用してデバッグされたプロセスに接続できます。テストが終了すると、リモートデバッガーはサーバーから切断されます。
Eclipseで使用する場合、このプロセスには2つのステップが含まれます。
私が達成したいのは、これを次のように減らすことです。
Maven.surefire.debugプロパティをいくつかのリモートデバッグオプションに設定すると、リモートデバッグの動作が変わることがわかりました。したがって、私が指定するとき、すなわち.
-Dmaven.surefire.debug = "-Xdebug -Xrunjdwp:transport = dt_socket、server = n、address = 5005"
次に、buildはポート5005でリッスンしているEclipseプロセスに接続しようとします。このようにして、mavenとEclipseのデフォルトのクライアント/サーバーロールを反転します。
ただし、このアプローチには1つの大きな問題があります。 Mavenビルドが終了した後、Eclipseはサーバーポートでのリッスンを停止するため、何も表示されません。これは私が理解していない部分です。 EclipseからWebLogicサーバーなどにデバッグクライアントとして接続すると、何度でも自由に接続/切断できます。
これが正常かどうかは誰か知っていますか、それともMavenテストのデバッグを簡単にするためにいくつかの追加オプションを指定する必要がありますか?
簡単な方法:
1. Open the Debug As > .. dialogue box
2. In the goal text box, give
-DforkMode=never test
3. Run the debug project
貢献するのは少し遅れましたが、それでも価値があると思いました。
Eclipseデバッグ構成で、「Mavenビルド」デバッグ構成を作成します:
目標= -Dmaven.surefire.debugテスト
プロファイル= myconfigprofile、weblogic
または特定のTestSuiteの場合:
目標= -Dmaven.surefire.debug -Dtest = com.myorg.mypkg /MyTestSuite.Javaテスト
プロファイル= myconfigprofile、weblogic
N.B. 「JRE/jvm引数」に小道具を入れないでください。これは一時停止していないようです。
追加の「リモートJavaアプリケーション」構成を作成します:
ホスト=ローカルホスト
ポート= 5005
Mvnビルドの実行/デバッグは、デフォルトで5005で停止してリッスンします。
参照: http://maven.Apache.org/plugins/maven-surefire-plugin/examples/debugging.html
M2Eclipseを使用している場合は、単純に右クリック次にデバッグ> Mavenテストではないのはなぜですか?