Eclipse一直在说“找不到测试运行器JUnit 5的测试”

Lee*_*eem 6 eclipse junit junit5

我正在使用Eclipse Oxygen.3 Release(4.7.3)。以下是我的JUnit测试类:

import static org.junit.Assert.assertEquals;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

class MyMathTest {
    MyMath myMath = new MyMath();

    @Before
    public void before() {
        System.out.println("Before");
    }

    @After
    public void after() {
        System.out.println("After");
    }

    @Test
    public void testSum_with3numbers() {
        System.out.println("Test1");
        int result = myMath.sum(new int[] {1,2,3});
        int expected = 6;
        assertEquals(expected, result);
    }

    @Test
    public void testSum_with1numbers() {
        System.out.println("Test2");
        int result = myMath.sum(new int[] {3});
        int expected = 3;
        assertEquals(expected, result);
    }

    @BeforeClass
    public static void beforeClass() {
        System.out.println("Before class");
    }

    @AfterClass
    public static void afterClass() {
        System.out.println("After class");
    }

}
Run Code Online (Sandbox Code Playgroud)

当我运行此Junit测试时,eclipse会继续弹出对话框,提示“未使用测试运行器'JUnit 5'找到任何测试”。为什么?

在此处输入图片说明

Sam*_*nen 7

您的测试类当前基于JUnit 4,因为它使用了org.junit程序包中的注释。

因此,要使其在Eclipse中作为JUnit 4测试类运行,您需要在“运行配置”中选择JUnit 4 Runner。单击绿色圆圈旁边的小箭头(指向下方),其中带有白色箭头(在Eclipse IDE的顶部)。在这里,您应该看到您的测试类,并选择可以在JUnit 4和JUnit 5运行器之间切换。

另一方面,如果您的目标是使用JUnit Jupiter(即JUnit 5的编程模型)编写测试,则需要将注释从切换org.junitorg.junit.jupiter.api


小智 7

我遇到了同样的错误,在尝试了一切之后,我意识到没有添加 JUnit 库。所以添加它后,测试按预期工作。


小智 5

这发生在我身上,因为我的测试方法被声明为私有,而 JUnit 无法检测到它。在我将其公开后,它按预期工作,当然带有 @Test 注释。