gpt4 book ai didi

java - JUnit java.lang.NoSuchMethodError : junit. framework.ComparisonFailure.getExpected()Ljava/lang/String

转载 作者:IT老高 更新时间:2023-10-28 21:12:16 30 4
gpt4 key购买 nike

我从之前成功运行但现在抛出此异常的测试用例中得到以下异常:

java.lang.NoSuchMethodError: junit.framework.ComparisonFailure.getExpected()Ljava/lang/String;
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestListener.testFailure(JUnit4TestListener.java:63)
at org.junit.runner.notification.RunNotifier$4.notifyListener(RunNotifier.java:100)
at org.junit.runner.notification.RunNotifier$SafeNotifier.run(RunNotifier.java:41)
at org.junit.runner.notification.RunNotifier.fireTestFailure(RunNotifier.java:97)
at org.junit.internal.runners.JUnit38ClassRunner$OldTestClassAdaptingListener.addError(JUnit38ClassRunner.java:41)
at org.junit.internal.runners.JUnit38ClassRunner$OldTestClassAdaptingListener.addFailure(JUnit38ClassRunner.java:64)
at junit.framework.TestResult.addFailure(TestResult.java:46)
at junit.framework.TestResult.runProtected(TestResult.java:127)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

有人知道这是什么原因吗?这似乎是 JUnit 运行者的内部问题。

最佳答案

junit.framework.ComparisonFailure 上的 getExpected() 方法仅在 JUnit 3.8.2 中添加(请记住,junit.framework 包来自 JUnit 3.8,而 JUnit 4 使用 org.junit)。该方法在 3.8.1 中不存在,这是仍然存在的最常见的 3.x 版本。

我认为添加该方法是为了更容易迁移到 JUnit 4 工具,并且偶尔会在使用 JUnit 3.8 的旧代码库中弹出此异常。运行 JUnit 3.8 测试时,Eclipse JUnit 4 测试运行程序似乎切换回调用 junit.framework.* 代码。

所以我猜你的类路径中仍然潜伏着 JUnit 3.8.1,它与 Eclipse 测试运行程序发生冲突。要么摆脱那个 JAR,要么将它“升级”到 3.8.2。

关于java - JUnit java.lang.NoSuchMethodError : junit. framework.ComparisonFailure.getExpected()Ljava/lang/String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4019016/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com