【问题标题】:Cant run the test class "No tests found with test runner 'Junit5'"无法运行测试类“没有使用测试运行器 'Junit5' 找到测试”
【发布时间】:2021-02-07 08:47:00
【问题描述】:

我创建了一个简单的 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 注释了。 并且随着“Run as maven-test”的运行,零测试即将到来。

【问题讨论】:

    标签: junit5


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 2019-11-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多