web-dev-qa-db-ja.com

Mavenのsurefireテストをより簡単にデバッグする方法(Eclipseをデバッグサーバーとして使用)

私はmaven/surefire/Eclipseを使用してコードを記述し、後でそれをテスト/デバッグしています。

これを行う標準的な方法は、maven.surefire.debugmavenプロパティを使用することです。デフォルトでは、このプロパティが有効になっていると、mavenはポート5005でリッスンを開始し、リモートデバッガーを使用してデバッグされたプロセスに接続できます。テストが終了すると、リモートデバッガーはサーバーから切断されます。

Eclipseで使用する場合、このプロセスには2つのステップが含まれます。

  1. Mavenを実行する
  2. リモート起動構成を使用して接続する

私が達成したいのは、これを次のように減らすことです。

  1. Mavenを実行する

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テストのデバッグを簡単にするためにいくつかの追加オプションを指定する必要がありますか?

26
mateusz.fiolka

簡単な方法:

1. Open the Debug As > .. dialogue box
2. In the goal text box, give
     -DforkMode=never test
3. Run the debug project
21
Zeba Ahmad

貢献するのは少し遅れましたが、それでも価値があると思いました。

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

19
wmorrison365

M2Eclipseを使用している場合は、単純に右クリック次にデバッグ> Mavenテストではないのはなぜですか?

2
Pascal Thivent