Получение "NoSuchMethodError: org.hamcrest.Matcher.describeMismatch" при выполнении теста в IntelliJ 10.5

Я использую 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, единственным банком hamcrest в моем classpath является 1.3.RC2.

Использует ли IntelliJ IDEA свою собственную копию JUnit или Hamcrest?

Как вывести CLASSPATH, который использует IntelliJ?

222
задан Noel Yap 24 October 2011 в 10:00
поделиться