JUnit-dep 4.10 と Hamcrest 1.3.RC2 を使用しています。
次のようなカスタム マッチャーを作成しました。
public static class MyMatcher extends TypeSafeMatcher<String> {
@Override
protected boolean matchesSafely(String s) {
/* implementation */
}
@Override
public void describeTo(Description description) {
/* implementation */
}
@Override
protected void describeMismatchSafely(String item, Description mismatchDescription) {
/* implementation */
}
}
Ant を使用してコマンド ラインから実行すると、問題なく動作します。しかし、IntelliJ から実行すると、次のエラーで失敗します。
java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object;Lorg/hamcrest/Description;)V
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:18)
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:8)
at com.netflix.build.MyTest.testmyStuff(MyTest.java:40)
私の推測では、間違った hamcrest.MatcherAssert を使用していると思われます。使用している hamcrest.MatcherAssert (つまり、hamcrest.MatcherAssert に使用している jar ファイル) を見つけるにはどうすればよいですか? AFAICT、私のクラスパスにある唯一の hamcrest jar は 1.3.RC2 です。
IntelliJ IDEA は JUnit または Hamcrest の独自のコピーを使用していますか?
IntelliJ が使用しているランタイム CLASSPATH を出力するにはどうすればよいですか?