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를 사용하고 있다고 생각합니다. 사용중인 hamcrest.MatcherAssert를 어떻게 찾습니까 (예 : hamcrest.MatcherAssert에 사용중인 jar 파일)? AFAICT, 클래스 경로에서 유일한 햄 크레스트 병은 1.3.RC2입니다.
IntelliJ IDEA는 자체 JUnit 또는 Hamcrest 사본을 사용합니까?
IntelliJ가 사용하는 런타임 CLASSPATH를 어떻게 출력합니까?