Я використовую 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 використовує (тобто який jar-файл використовується для hamcrest.MatcherAssert)? AFAICT, єдина бачка з кремом в моєму класі - 1.3.RC2.
Чи IntelliJ IDEA використовує власну копію JUnit або Hamcrest?
Як вивести CLASSPATH часу виконання, який використовує IntelliJ?