我创建了一个简单的 Maven java 应用程序,我试图在其中运行测试用例。
当作为 JunitTestCase 运行时,它会给出一个弹出窗口,说明 “未找到测试运行程序‘JUnit5’的测试”。
和控制台:
<块引用>Java.lang.NoClassDefFoundError: org/junit/platform/engine/TestEngine
> at
> org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry.loadTestEngines(ServiceLoaderTestEngineRegistry.java:35)
> at
> org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:87)
> at
> org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:67)
> at
> org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:34)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method) at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> at java.lang.Class.newInstance(Class.java:442) 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.TestEngine at
> java.net.URLClassLoader.findClass(URLClassLoader.java:382) at
> java.lang.ClassLoader.loadClass(ClassLoader.java:418) at
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at
> java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 14 more
我的 pom.xml 有:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
以及使用: org.junit.jupiter.api.Test
PS:- 我已经在使用 JUnit5 注释了。 并且随着“作为 maven-test 运行”,零测试即将运行。
答案 0 :(得分:1)
你只依赖于 api,给你例如注释,但您缺少执行测试的引擎。添加 junit-jupiter-engine
作为依赖项或切换到便利依赖项 junit-jupiter
。
查看 maven 入门示例 (https://github.com/junit-team/junit5-samples/tree/r5.7.1/junit5-jupiter-starter-maven),了解如何为 junit5 获取最小功能的 pom.xml。