JUnit测试遇到NoClassDefFoundError

时间:2019-12-13 07:25:59

标签: eclipse junit

我正在尝试学习如何编写JUnit测试。

这是Calculator.java中的所有内容。

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

这是CalculatorTest.java中的所有内容。

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class CalculatorTest {
    private static Calculator calculator = new Calculator();

    @Before
    public void setUp() throws Exception {
    }

    @Test
    public void testAdd() {
        int actual_rs = calculator.add(1, 2);
        assertEquals(3, actual_rs);
    }

}

enter image description here

如何解决此错误

java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:333)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadTestLoaderClass(RemoteTestRunner.java:380)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:370)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:365)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:309)

1 个答案:

答案 0 :(得分:1)

由于您使用的是 Java 13 ,因此请确保您具有 Eclipse 2019-09(4.13) Java 13 Support for Eclipse 2019-09 (4.13) 插件-in(或具有内置Java 13支持的Eclipse 2019-12,将于2019年12月18日发布)。

还请确保不要混用JUnit 4和5 。为了学习如何编写JUnit测试,建议使用 JUnit 5代替,而使用过时的早期版本 JUnit 4