ฉันใช้ JUnit-dep 4.10 และ Hamcrest 1.3.RC2
ฉันได้สร้าง matcher ที่กำหนดเองที่มีลักษณะดังนี้:
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 ของตัวเองหรือไม่
ฉันจะส่งออก runtime CLASSPATH ที่ IntelliJ ใช้ได้อย่างไร