我收到一个弹出窗口,标题为“无法运行测试”和消息“未找到测试运行程序‘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/