java - JUnit 不读取测试方法
问题描述
我正在尝试使用 JUnit 来测试我所做的队列实现,但我遇到了一个问题:就像 JUnit 找不到我的测试方法一样。有谁知道如何解决这样的问题?
如需更多说明,这是 Eclipse 提出的问题
java.lang.NoClassDefFoundError: org/junit/platform/engine/ConfigurationParameters
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:34)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:350)
at java.base/java.lang.Class.newInstance(Class.java:645)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:371)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:366)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:310)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:225)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.ConfigurationParameters
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 13 more
这也是我的测试课。
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.lang.String;
import org.junit.Before;
import org.junit.jupiter.api.Test;
public class QueueTest {
private Queue qq;
@Before
public void setUp()
{
qq = new Queue<Integer>();
}
@Test
public void testInitialState()
{
}
@Test
public void testAddElement()
{
}
@Test
public void testHowMany()
{
}
@Test
public void testGetElement()
{
}
@Test
public void testTimings()
{
}
}
我还尝试将 JUnit 的版本从 5 更改为 4,但没有任何变化,问题可能与构建路径有关吗?谢谢,
解决方案
JUnit 5 分为几个工件,主要是 API 和运行测试的实际引擎。您看到的错误似乎表明您没有可用的引擎(或者更准确地说是引擎所依赖的平台)。假设您使用的是 Maven,请确保您具有以下依赖项:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
推荐阅读
- python - ImportError: No module named... 在 Jupyter Notebook 上使用 docker
- android - Google 语音助手命令不适用于操作 CREATE_NOTE
- wordpress - Wordpress + ACF,在首页显示每个帖子的随机帖子图片
- javascript - 为什么我无法获取值选择和输入?
- ansible - ansible中的双with_items循环
- c# - 从 Azure 下载 blob 图像
- vb.net - 如何将文本的颜色从某个字符更改为行尾
- mysql - 执行准备好的语句的参数数量不正确 - Python / MySQL
- gentics-mesh - 网格中废弃 tmp 文件的问题
- elasticsearch - Fluentbit Kubernetes - 如何从现有日志中提取字段