在 IntelliJ 10.5 中运行测试时获取“NoSuchMethodError: org.hamcrest.Matcher.describeMismatch”
2022-08-31 05:38:25
我使用的是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.我如何找到哪个笨蛋。MatcherAssert 它正在使用(即它用于hamcrest的jar文件。MatcherAssert)?AFAICT,我的类路径中唯一的hamcrest jar是1.3.RC2。
IntelliJ IDEA是使用自己的JUnit或Hamcrest副本吗?
如何输出 IntelliJ 正在使用的运行时类路径?