2016-07-18 12 views
2

私はhamcrest-all-1.3をjunit-dep jarの上に置いていますが、antを使って実行するとこの例外が発生します。しかし、Eclipseはこの矛盾を解決するのに十分なインテリジェントであり、テストは機能します。私はclasspathにmockitoを持っていませんが、jmockitとeasymockは私がここで問題ではないと信じています。ここでアサートです:Eclipse内、「assertThat」とF3キーを押して上にカーソルを置く:NoClassDefFoundError on org/hamcrest/Matcher on junit

import static org.hamcrest.MatcherAssert.assertThat; 
import static org.hamcrest.Matchers.lessThanOrEqualTo; 
/* ... 
... 
... */ 


assertThat(10, lessThanOrEqualTo(20)); 

例外は、問題のような種類を修正する

[junit] org/hamcrest/Matchers

[junit] java.lang.NoClassDefFoundError: org/hamcrest/Matchers

+0

いくつかのコードを投稿してください。マニフェストが正しいクラスを指していることを確認してください – Confiqure

+0

あなたの環境についてさらに教えてください。どのIDE、どのようにテスト(Eclipse、IntelliJ、Maven、Ant、...?)を実行しますか? –

+0

は説明を更新し、コードを投稿しました。私はantから実行するとこのエラーが発生します。 Eclipseはこの状況を解決します。 – Sabarish

答えて

2

Stefanが述べたように、この問題を解決するには、両方のhamcrest jarが必要です。 junit-4.12.jar、hamcrest-core-1.3.jar、hamcrest-library-1.3.jar

0

一つの方法です。

これは、対応するクラス/メソッドの背後にあるソースに移動します。おそらく、あなたはあなたに言って、空のウィンドウで終わる:が見つかりません

クラスファイルエディタ

ソースを

その後、あなたassertThatが実際に発見されるJARファイルの名前を伝えるために。私の場合、junit-4.11.jarになります。

短い説明:ビルド設定にJUnit jarが含まれているかどうかを確認してください。