4

通常、maven Surefire プラグインによって実行される JUnit テストで、フィルター処理された testResources を使用しています。つまり、pomにはセクションが含まれています

  <build>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
      </testResource>
    </testResources>
    ...

このような JUnit テストをデバッガーで実行するにはどうすればよいですか? Eclipse でテストを実行すると、テスト リソースがフィルター処理されないため、テストは失敗します。フィルタリングされたテスト リソースがターゲット ディレクトリのどこかに書き込まれる場合、これを追加のソース パスとして使用できますが、そうではありません。Debug As / maven test を使用して eclipse で maven ビルドを実行しようとすると、ビルドがブレークポイントで停止しません。他のアイデアはありますか?

4

2 に答える 2

4

いくつかのオプションがあります。まず、 maven.surefire.debugを指定してコマンドラインからテストを実行できます。デフォルトでは、surefireテストはフォークされたJVMで実行されます。つまり、Mavenプロセスをデバッグするだけでは、テストブレークポイントで停止することはありません。それはおそらくあなたが今見ているものです。http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.htmlも参照してください。

それ以外の場合は、IDE内でプロジェクトをMavenプロジェクトとして構成することをお勧めします。プロジェクトがMavenプロジェクトとして構成されている場合、テストを実行する前にリソースフィルタリングが自動的に実行されます。それは少なくともIdea内でどのように機能するかであり、Eclipseは適切なMavenプラグインがインストールされていても同じように機能すると思います。

コマンドラインからmavenビルドを1回実行してから、target/test-classesディレクトリをIDE構成に手動で追加することもできます。動作しますが、少し危険です。

于 2010-05-18T09:02:14.083 に答える
1

Eclipse でテストを実行すると、テスト リソースがフィルター処理されないため、テストは失敗します。

m2eclipseを使用すると、リソースは Eclipse 内でフィルタリングされます。

于 2010-05-18T09:47:56.420 に答える