J'utilise JUnit-dep 4.10 et Hamcrest 1.3.RC2.
J'ai créé un sélecteur personnalisé qui ressemble à ce qui suit :
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 */
}
}
Il fonctionne parfaitement bien lorsqu'il est exécuté à partir de la ligne de commande en utilisant Ant. Mais lorsqu'il est exécuté depuis IntelliJ, il échoue avec :
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)
Je pense qu'il utilise le mauvais hamcrest.MatcherAssert. Comment puis-je trouver quel hamcrest.MatcherAssert il utilise (c'est-à-dire quel fichier jar il utilise pour hamcrest.MatcherAssert) ? AFAICT, le seul jar hamcrest dans mon classpath est 1.3.RC2.
IntelliJ IDEA utilise-t-il sa propre copie de JUnit ou de Hamcrest ?
Comment puis-je afficher le CLASSPATH du runtime qu'IntelliJ utilise ?