Eclipse JUnit 5 を使用したテストが見つからない原因は、LauncherFactory の NoClassDefFoundError です。質問する

Eclipse JUnit 5 を使用したテストが見つからない原因は、LauncherFactory の NoClassDefFoundError です。質問する

問題

プロジェクトの 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 アノテーションが付けられたメソッドにマウスを移動してテストを開始し、「JUnit テストとして実行」をクリックします。
  • ビルドパスからJUnitを削除して再度追加します
  • Eclipseを再起動する
  • また、プロジェクト全体をあるマシンから別のマシンに移動し、そこに提供されているEclipseインストールで試してみました。
  • テストメソッドの名前を変更します。
  • @Testアノテーションを再入力する

これらのステップのいくつかこちらからご覧いただけますしかし結局、問題は残ったままでした。

ベストアンサー1

テストを右クリックして「実行構成」を選択し、「テストランナー:」の選択を次のように「JUnit 4」に変更することで問題を修正しました。

実行構成のスクリーンショット

もう一度テストを実行したところ、うまくいきました。

おすすめ記事