解決策は、hamcrest の後に Junit がロードされるようにすることだと理解しています。JUnitとJMockとhamcrestの両方を含む外部ライブラリをセットアップするintellijプロジェクトがあります。このエラーが表示されないようにするにはどうすればよいですか
質問する
3224 次
3 に答える
6
- junit:junit:4.11 は以前の junit:junit-dep を置き換えます
- JUnit 4.11 には、org.hamcrest:hamcrest-core:1.3 jar が依存関係として含まれています。
- テストで明示的な Hamcrest マッチャーを使用するには、org.hamcrest:hamcrest-library:1.3 を含めます。
- org.mockito:mockito-all:1.9.x - 依存関係としてではなく、jar 内にラップされた古いバージョンの Hamcrest が含まれています。これが犯人です。( https://code.google.com/p/mockito/issues/detail?id=459 )
- すべてのテスト依存関係の前に org.hamcrest:hamcrest-core:1.3 を置きます
- Maven の依存関係管理セクションを使用して、junit、hamcrest、mockito jar のすべての推移的なバージョンを制御します。たとえば、spring-integration-test には、mockito-all:1.9.0 が推移的に含まれます。
于 2013-10-30T16:52:09.807 に答える
2
ライブラリ(jar)の互換性を確認する必要があります。jar内のクラスが別のjarにあるクラスのメソッドを使用し、この使用されたメソッドが新しく追加され、古いjarを使用している場合、間違いなくjava.lang.NoSuchMethodError
.
于 2012-08-22T10:02:37.087 に答える
0
junit.jar ではなく、junit-dep.jar (hamcrest 依存関係を含まない!?) をインポートする必要があります。大規模なプロジェクトで Maven を使用している場合、これには、あいまいな hamcrest と junit のインポートをすべてフラッシュするために、多くの追跡が必要になる可能性があります。
junit の今後のリリースが hamcrest 1.3 と互換性があることが役立つかもしれません
于 2012-08-26T15:20:28.460 に答える