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、私のクラスパスの唯一のハムクレストjarは1.3.RC2です。
IntelliJ IDEAはJUnitまたはHamcrestの独自のコピーを使用していますか?
IntelliJが使用しているランタイムCLASSPATHを出力するにはどうすればよいですか?