2012-01-17 10 views
1

JUnitテストとして(Eclipse Workbench内から)Javaファイルを実行すると完全に実行される6つのテストケース(@Test-annotatedメソッド) 。しかし、私はbuildscriptからrun-tests Antターゲットを実行するために行くとき、彼らは以下のコンソール出力で失敗:ここJUnitテストはEclipseワークベンチにはパスしますが、Antビルドでは失敗します

[junit] Running com.me.myproject.WidgetTest 
[junit] Tests run: 6, Failures: 6, Errors: 0, Time elapsed: 1.737 sec 
[junit] Test com.me.myproject.WidgetTest FAILED 

run-tests対象のJUnitのセクションです:今まで

<junit fork="yes" forkmode="once" dir="${basedir}" printsummary="yes" haltonerror="no" haltonfailure="no"> 
    <classpath> 
     <path refid="test.class.path"/> 
     <pathelement location="${mainBuildDir}"/> 
     <pathelement location="${testBuildDir}"/> 
    </classpath> 

    <formatter type="xml"/> 

    <batchtest todir="${genUnitTestReportsDir}"> 
     <fileset dir="${testJavaSrcDir}"> 
     <include name="**/*Test*.java"/> 
     </fileset> 
    </batchtest> 
</junit> 

は誰これが起こったことを聞く? JUnitのantタスクからより多くの(冗長な)出力を得る方法はありますか?ここで起こっていることをデバッグする良い方法はありますか?前もって感謝します!

+0

デバッグする最も簡単な方法は、何が起きているかを確認するために、テストにSystem.out.printlnステートメントを追加することです。 – yatskevich

+0

ところで、junit Antタスクの 'showoutput'パラメータを見てください。 http://ant.apache.org/manual/Tasks/junit.html – yatskevich

+0

失敗したテストの出力はありますか? – helios

答えて

0

私のテストでHibernate/Hypersonic SQLを使用しているときに、データベースに書き込むクラスにも同様の問題がありました。日食の中でテストを実行するときの極超音速接続の寿命は、antで使用されるものよりもずっと短くなります。結果として、データベースはEclipse内のすべてのテストの終わりに削除されますが、テスト中からant内のテストまで執着します。

データベースにデータを書き込む場合、次のテストでデータを取得しないように、データを削除する必要があります。

0

例外のスタックトレースが表示されなくてもわかりません。これはおそらくクラスパスの問題です。 JUnitに関するJava ANTのドキュメントをチェックすると、デバッグトレースを有効にするのに役立ちます。

関連する問題