eclipse - JUnit5 测试在 maven 上工作正常,但在通过 Eclipse 运行时不行, "No tests found with test runner ' JUnit 5'."

标签 eclipse maven junit5

我收到一个弹出窗口,标题为“无法运行测试”和消息“未找到测试运行程序‘JUnit 5’的测试。”当我尝试通过 Run As > JUnit Test 使用 Eclipse 运行 JUnit 5 测试时.

我有两个与测试相关的文件。一个是测试套件:

...

import org.junit.jupiter.api.BeforeAll;
import org.junit.platform.runner.JUnitPlatform;
import org.junit.platform.suite.api.SelectPackages;
import org.junit.runner.RunWith;

@RunWith(JUnitPlatform.class)
@SelectPackages("com.foo.stufftotest")

public class TestSuite {
    @BeforeAll
    public static void setup() {
        ...

另一个包含“实际”测试:
package com.foo.stufftotest;

import static org.junit.jupiter.api.Assertions.assertTrue;

import org.junit.jupiter.api.Test;

import com.foo.TestSuite;
import com.foo.business.mechanics.LogicStuff1;

public class BusinessTest {
    @Test
    public void testLogic1() {
        ...
    }

    @Test
    public void testLogic2() {
        ...
    }

    ...

所有testLogicN()方法取决于在 TestSuite.setup() 中完成的设置内容.如 setup()没有运行,有很多空值,事情失败也就不足为奇了。当我尝试从项目的上下文菜单中运行 JUnit 时,所有测试都被触发并且都失败了;该套件似乎无法识别。当我尝试从 TestSuite.java 专门运行 JUnit 时的上下文菜单,我最终遇到了我在问题顶部提到的错误。

但是,当我运行 maven test 时项目上,套房正确触发,所有测试通过。因此,代码本身似乎不是问题。

我不记得 JUnit 4 有这个问题,尽管我从未在这个特定项目中使用过 JUnit 4。

是我使用 Eclipse 错误,还是我使用 JUnit5 错误?这里有什么解决办法?

最佳答案

我在 Eclipse Oxygen 4.7.1 中遇到了同样的问题,尽管我的单元测试被正确注释了 org.junit.jupiter .

我用了 Maven > Update Project并选择 Update project configuration from pom.xml但这没有任何作用,即使我认为它会发现我在 pom.xml 中有 JUnit5 依赖项的事实。

我的解决方案:

  • 开通 Java Build Path ,选择 Libraries选项卡和 Add Library .
  • 选择 JUnit .
  • 选择 JUnit5对于 JUnit 库版本。

  • 添加后,我就可以从 Eclipse 手动执行测试。但是我仍然不确定为什么这不是自动添加的。

    关于eclipse - JUnit5 测试在 maven 上工作正常,但在通过 Eclipse 运行时不行, "No tests found with test runner ' JUnit 5'.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48388723/

    相关文章:

    java - 如何使用 Maven 更改版本的第四位数字?

    java - 如何正确引用CSS路径?

    java - 在junit5中进行单元测试dropwizard时如何注入(inject)HttpSession和HttpServletRequest?

    java - 在 Eclipse 中启动时自动导入添加到项目路径中的新 Java 类

    java - Tomcat 7 的查看 session 不可用或已过期

    Android ProgressDialog 无法添加取消按钮

    java - Spring 测试配置忽略 Maven 过滤器

    java - 通过 JUnit 5 运行并行测试类

    java - junit5 扩展的 BeforeAll/AfterAll 回调针对每个嵌套测试类执行。这是预期的吗?

    java - 调用扫描器后方法不会更新 GUI