Eclipse NoClassDefFoundError for LauncherFactory 未找到使用 JUnit 5 的测试

新手上路,请多包涵

问题

每当我运行我的项目 JUnit 测试(使用 JUnit 5 和 Java 9 和 Eclipse Oxygen 1.a)时,我都会遇到 eclipse 找不到任何测试的问题。

说明

在运行配置下,eclipse甚至找不到用@Test注释的方法,而是只显示“ (所有方法) ”。下图希望能更好地了解我的设置:

https://imgur.com/a/FTe9c

控制台输出:

 java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory
    at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:31)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.base/java.lang.Class.newInstance(Unknown Source)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:368)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:363)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:307)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:222)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.launcher.core.LauncherFactory
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    ... 11 more

到目前为止我尝试了什么

我已经试过了

  • 从构建路径中删除测试文件夹并再次添加它。
  • 将鼠标悬停在使用 @Test 注释的方法上开始测试,然后单击“Run as JUnit Test”。
  • 从 Buildpath 中删除 JUnit 并再次添加
  • 重启日食
  • 我还将项目整个项目从一台机器移动到另一台机器,并在那里使用提供的 eclipse 安装进行了尝试
  • 重命名测试方法。
  • 重新输入 @Test 注释

其中一些步骤 可以在这里找到,但最终问题仍然存在。

原文由 ShadowDragon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 519
2 个回答

您遇到了已修复的 Eclipse 错误 525948 ,该错误将在 2018 年 3 月 21 日即将发布的 Oxygen.3 (4.7.3) 版本中发布。

作为解决方法, 将您的测试代码放在一个单独的项目中 并将被测项目添加到模块路径中,但不要将 module-info.java 添加到您的测试项目中。使用您的项目、类和模块命名,它应该如下所示:

在此处输入图像描述

另请参阅 我在 Eclipse Oxygen.1a 中展示 Java 9 和 JUnit 5 的视频

原文由 howlger 发布,翻译遵循 CC BY-SA 3.0 许可协议

我通过右键单击测试并选择“运行配置”并将“测试运行器:”选择更改为“JUnit 4”来解决此问题,如下所示:

运行配置的屏幕截图

我再次运行测试并且成功了。

原文由 stringVector 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题