मैं 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 */
}
}
चींटी का उपयोग करके कमांड लाइन से चलाने पर यह पूरी तरह से ठीक काम करता है। लेकिन जब 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)
मेरा अनुमान है कि यह गलत हैमस्ट्रैस्ट का उपयोग कर रहा है। मुझे यह कैसे पता चलेगा कि कौन सी हैमक्रेस्ट.चैटरएस्सर इसका उपयोग कर रही है (यानी हैमरेस्ट.चैचर्स डिटेल्स के लिए इसका उपयोग किस जार फाइल के लिए है)? AFAICT, मेरी कक्षापथ में एकमात्र हैमरेस्ट जार 1.3.RC2 है।
क्या IntelliJ IDEA ने JUnit या Hamcrest की अपनी कॉपी का उपयोग किया है?
मैं रनटाइम क्लसपाथ का उत्पादन कैसे करूं जिसका इंटेलीजेंस उपयोग कर रहा है?