11

これが私のANT JUnitターゲットです

<target name="test" depends="compile" >
    <junit failureProperty="test.failure" >

        <jvmarg value="-Xdebug" />
        <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432" />

        <classpath>
            <pathelement path="${basedir}\..\Core\lib\junit-4.10.jar"/>
            <pathelement path="${basedir}\..\Suggestion\lib\ssce.jar"/>
            <pathelement path="C:\Java\javamail-1.4.1\mail.jar"/>
            <pathelement path="C:\Java\commons-net-2.0\commons-net-ftp-2.0.jar"/>
            <pathelement path="${basedir}\WebContent\WEB-INF\lib\gson-2.2.1.jar"/>
            <pathelement path="${tomcatLibs}\servlet-api.jar"/>
        </classpath>
        <classpath>
            <pathelement path="${build}"/>
        </classpath>
        <formatter type="brief" usefile="false" />          
        <test name="com.server.junit.ServerTestSuite" />
        <test name="com.junit.DictionaryTestSuite" />   
        <test name="com.util.junit.SuggestionTestSuite" />              
    </junit>

    <fail message="Unit test failed" if="test.failure"/>
</target>

私の単体テストは、Eclipse を介して実行すると問題なくパスしますが、ANT から実行すると失敗します。単体テストのブレークポイントで停止したい。ドキュメントから、これらのjvmargを追加する必要があることはわかっていますが、停止できないため、明らかに適切な場所にありません。また、ポートが正しいとは思いませんが、どのポートを使用すればよいですか? Eclipse を介して JUnit をデバッグするときに、デバッグ ポートを設定する必要はありませんでした。

4

2 に答える 2

11

Eclipse 内から JUnit テストと ANT ターゲットを実行できることを忘れる必要があります。必要なのは、たまたまメイン クラスを持ち、コマンド ラインからorg.apache.tools.ant.Main起動できるJava アプリケーションをデバッグすることです。ant

2 つのオプションがあります: 起動する起動構成を作成できますorg.apache.tools.ant.Mainが、セットアップはかなり複雑です (ant起動時にスクリプトが行うすべてのことを複製する必要があります)。

もう 1 つの方法は、ant正しく構成することです。あなたの場合、テストはプロセス内で実行されますが、Ant 自体antに渡す簡単な方法はわかりません。-Xdebugしたがって、新しいプロセスでテストを実行する必要があります。junitこれをタスクに追加します。

<junit fork="yes" forkmode="once" ...>

これがないと、jvmargパラメータは無視されます。

次のステップは、Eclipse でデバッグ構成を作成することです。この記事では、これについて詳しく説明します。あなたにとって重要なのは「結論」の直前の最後の部分だけです。

于 2012-12-03T09:36:03.810 に答える
4

詳細な手順:

  1. Eclipse で、[実行] | [実行] に移動します。デバッグ。
  2. 左側の列で [リモート Java アプリケーション] を選択します。同じ列の下部にある [新規] をクリックします。
  3. [構成の作成] 画面で、いくつかの値を入力するよう求められます。意味のある名前から始めます。[プロジェクト] で、デバッグするソース コードを含む Java プロジェクトを選択します。Connection Type はデフォルトのまま、つまり Standard (Socket Attach) のままにします。Host には、localhost と入力します。リモート サーバーをデバッグする場合は、そのホスト名または IP アドレスを入力します。ポートには、5432 を入力します。
  4. [適用] をクリックします。
  5. テストがデバッグ モードで実行されていることを確認します。同じ画面で [デバッグ] をクリックします。Eclipse によって自動的にデバッグ パースペクティブが表示され、デバッグ ビューにスタック トレースが表示されます。
  6. デバッグ パースペクティブが自動的に表示されない場合は、[ウィンドウ] | [ウィンドウ] を選択します。パースペクティブを開く | [その他] をクリックし、[デバッグ] をクリックします。

ここから撮影。

于 2012-12-03T09:29:20.253 に答える