Eclipse LauncherFactoryのNoClassDefFoundErrorが原因で、JUnit5を使用したテストが見つかりませんでした


99

問題

プロジェクトのJUnitテストを実行するたびに(Java9およびEclipseOxygen1.aでJUnit5を使用)、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 JUnitTest]をクリックします。
  • ビルドパスからJUnitを削除し、再度追加します
  • Eclipseを再起動します
  • また、プロジェクト全体をあるマシンから別のマシンに移動し、提供されているEclipseインストールで試してみました
  • テストメソッドの名前を変更します。
  • @Testアノテーションを再入力します

これらの手順のいくつかはここにありますが、最終的には問題が残りました。


しかし、これに対する答えに記載されている違いを見つけようとしましたか?stackoverflow.com/questions/34413/…
ナマン2017年

回答:


22

すでに修正されており、2018年3月21日の次のリリースOxygen.3(4.7.3)で公開されるEclipseバグ525948に遭遇しました。

回避策として、テストコードを別のプロジェクト配置し、テスト対象のプロジェクトをモジュールパスに追加module-info.javaしますが、テストプロジェクトには追加しないでください。プロジェクト、クラス、モジュールの名前を付けると、次のようになります。

ここに画像の説明を入力してください

EclipseOxygen.1aのJava9とJUnit5の動作を示す私のビデオも参照してください。


1
@nullpointerモジュール式ではない(ないmodule-info.java)新しいJavaプロジェクトを作成することを意味します。Eclipseでは、Javaプロジェクトには単一の出力フォルダーがあるため、1つしか含めることができないか、まったく含めることができませんmodule-info.java。ただし、プロジェクトがモジュール式ではない(モジュール式ではないmodule-info.java)場合でも、プロジェクトのモジュールパスにモジュールを追加できます。
遠吠え2017年

1
@ShadowDragonこのハックの欠点は、テストクラスに別のパッケージ名が必要なため、パッケージプライベートテストを実行できないことです
kleopatra 2017年

7
Oxygen.3(4.7.3)をインストールしたところ、問題が解決しません。
user118967 2018

2
@chomp 2018-09の場合、症状が似ていても別の問題です。テストが見つからなかった場合、これは主にクラスパス/モジュールパスが正しくないことが原因です([プロジェクト]> [プロパティ]:[Javaビルドパス])。
遠吠え2018

2
@howlgerありがとう。最新バージョンにアップグレードした後、この問題はなくなりました。助けてくれてありがとう:)。
ダッタ

136

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

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

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


13
JUnit5の使用中に実行構成で「JUnit4」を選択するのはおかしいです。大きなプロジェクトを扱っているときに信頼できる良い解決策とは言いません。
Levent Divilioglu 2018

2
また、この解決策は疑わしいと思います。なぜこれが機能するのか、どのようなリスクを冒すのかについての説明もありません。
アマダン

これを行っても問題が解決しない場合は、同じウィンドウの[クラスパス]タブに移動し、JUnitをブートストラップライブラリに追加します。
Abhi

ありがとう; JUnit 4を選択すると、問題が解決しました。今のところ、これが問題を解決する最も簡単な方法です。
テス

私の意見では、この侵襲性の低いソリューション、つまりソースコードを変更する必要はありません。
ラファエルロシャ

65

STS3.9.1でも同じ問題が発生します。Eclipseのバグのようですが、これを修正するjunit-platform-launcherには、プロジェクトにテストの依存関係を追加できます(https://mvnrepository.com/artifact/org.junit.platform/junit-platform-launcher)。

これは、gradleを使用するプロジェクトで行った方法です。

dependencies {
    // other stuff here

    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: "5.${junit5MinorVersion}"
    testCompile group: 'org.junit.platform', name: 'junit-platform-launcher', version: "1.${junit5MinorVersion}"
}

gradle.propertiesファイル:

junit5MinorVersion=1.0

IntelliJ IDEAの使用中にこの例外が発生した場合も、同じことが当てはまると思います。


1
通常、gradleを使用している場合はになりbuild.gradleます。Mavenを使用している場合は、ですpom.xml。ただし、Mavenの形式は異なります。
Andrii Karaivanskyi 2018

1
それは私のためにそれを修正しました。ありがとう!
クリス

4
<dependencies>内に入るpom.xmlスニペットは次のとおりです。<dependency> <groupId> org.junit.jupiter </ groupId> <artifactId> junit-jupiter-engine </ artifactId> <version> 5.1.0 </ version> <scope> test </ scope> </ dependency> <dependency> <groupId> org.junit.platform </ groupId> <artifactId> junit-platform-launcher </ artifactId> <version> 1.1.0 </ version> < scope> test </ scope> </ dependency>
user118967 2018

1
それでもjunit-platform1.1.0を追加してもうまくいきませんでした。同じメッセージ「JUnit5を使用したテストランナーでテストが見つかりません」が表示されます
P SatishPatro19年

2
@PSatishPatro上記を追加した後。そのJUnitテストケースの構成を実行し、[クラスパス]タブ-> [詳細設定]-> [ライブラリの追加]-> [OK]-> [JUnit]-> [完了]に移動する必要があります。次に、先に進んで実行します。これにより、JUnitの実行中にライブラリが追加されます
JaisonVarghese19年

28

私の場合、問題は私自身であり、EclipseのようなIDEはありませんでした。JUnit 4Testクラスをインポートしました。

したがって、これをインポートしないでください。

import org.junit.Test  // JUnit 4

しかし、それをインポートしてください:

import org.junit.jupiter.api.Test // JUnit 5

現在のプロジェクトではJUnit5を使用しているため、JUnit 4と5を切り替えていましたが、Hibernateなどにバグを報告するときにJUnit4に切り替える必要があります。誤ってインポートを混在させてしまいました。🤦♂️
Kawu

21

これまでの回答は、必ずしもEclipseを使用していない他の人々とコードを共有するという問題に対処していませんでした。ここに1つの命題があります。重要なのは、Mavenプロファイルを使用してEclipseケースを解決することです。

次のjunit5.versionようにpomにプロパティを定義していることを前提としています。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <junit5.version>5.1.1</junit5.version>
</properties>

次に、profilesセクションに以下を追加します。

<profiles>
    <profile>
        <id>eclipse</id>
        <dependencies>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
            </dependency>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-launcher</artifactId>
            </dependency>
        </dependencies>
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.junit.jupiter</groupId>
                    <artifactId>junit-jupiter-engine</artifactId>
                    <version>${junit5.version}</version>
                    <scope>test</scope>
                </dependency>
                <dependency>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-launcher</artifactId>
                    <version>1.1.1</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    </profile>
</profiles>

この後、ローカルのEclipseでプロファイルを選択するだけです。プロジェクトを右クリックして選択Maven > Select Maven Profiles...(またはCtrl+ Alt+を押すP)して、作成した「Eclipse」プロファイルを確認します。

Mavenプロファイルの選択

これで完了です。Eclipseは期待どおりにJUnit5テストを実行しますが、追加した構成が他のビルドや他のIDEを汚染することはありません


14

このMaven依存関係をJUnitJupiter(v.5.5.1)に追加すると、問題が解決します。

<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-launcher</artifactId>
    <version>1.5.1</version>
    <scope>test</scope>
</dependency>

Spring Boot 2.x用に作成されたJARプロジェクトがあり、JUnit 5が導入されました。この依存関係を追加したところ、修正されたようです。ありがとう!
デビッドブラッドリー

14

簡単な修正:(JUnit 5ライブラリを追加)

指示:

  • プロジェクトを右クリック->ビルドパス->ビルドパスの構成
  • ポップアップで->ライブラリの追加-> JUnit-> JUnit5->完了->適用
  • プロジェクトに追加されたJUnit5ライブラリ(およびそのjar)が表示されます。
  • プロジェクトを右クリック-> Maven->プロジェクトの更新-> OK

9

どの解決策も役に立ちませんでした:

問題は、Eclipse2018-12がJUnit5.3.1をサポートしていることです。それ以前のバージョンで起動すると失敗します。

したがって、少なくとも5.3.1を使用するようにしてください。

5.4.0も機能します。

親pomがSpringBootの場合、(依存関係管理で)junit-jupiter-apiが同じバージョンに設定されていることを確認する必要があります。junit-platform-runnerや-launcherは必要ありません!


2
ヒントをありがとう。2019-3を<junit-jupiter.version>5.4.1</junit-jupiter.version>使用していて、Springブートで使用されているバージョン(2.1.3.RELEASE)をオーバーライドするプロパティを追加しました。
リテッシュ

3
これは私のためにそれを修正したものでした。-launcherの依存関係を削除すると、機能し始めました。(日食2019-09およびjunit 5.4.2)
レイモンド

この解決策は私にも役立ちます。ただし、私の場合は、5.3.1から5.5.1に変更し、junit-platform-engineを1.5.1に変更しました。
ArwanKhoiruddin19年

1
これは私のためにそれを修正しました。Eclipse 2020-03では、テストはjunitバージョン5.5.2ではなく5.6.0で開始されました。あなたの答えの一般的な更新として:少なくともEclipseが使用するjunitバージョンを使用する必要があるかもしれません。
LarsBriem20年

8

Andrii Karaivanskyiの回答に続いて、MavenPOM宣言があります。

<properties>
    ...
    <junit-jupiter.version>5.2.0</junit-jupiter.version>
    <junit-platform.version>1.2.0</junit-platform.version>
    ...
</properties>

<dependencies>
    ...
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit-platform.version}</version>
        <scope>test</scope>
    </dependency>
    ...
</dependencies>

更新

Alexander WesselのコメントによるとEclipseの質問に対する彼の回答で説明されいるようにorg.junit:junit-bomを使用できます。LauncherFactoryのNoClassDefFoundErrorが原因でJUnit5を使用したテストは見つかりませんでした


1
木星とプラットフォームのバージョンのプロパティを宣言せず、代わりにBOMを使用してください。基本的に、dependencyManagementタグのBOMにscope=import type=pom依存関係を追加し、依存関係セクションにバージョンを指定せずに、テストスコープのjunit-platform-launcherとjunit-jupiter-engineに依存関係を追加します。BOMは常に、クラスパスにJUnit PlatformとJupiterのバージョンが1つしかないこと、およびそれぞれのバージョンが意図したものであることを確認します(たとえば、5.2.0と1.2.0)。
アレクサンダーウェッセル2018年

@AlexanderWessel私はBOMを持っていません。これは、どこにいても、Mavenで宣言する必要のある依存関係の抜粋の例にすぎません。
Gerold Broser 2018年

1
BOM自体を持っている(またはプロジェクトに持っている)かどうかではありません。私はでそれを説明しなかったインポートBOM JUnitの5が提供するのためにも、もはやバージョンを宣言する必要が、あなたは、JUnitの木星とJUnitプラットフォームのバージョンに互換性があることを確認することができますし、個々の依存関係にバージョンを宣言する必要はありませんプロパティ。明確にするために:あなたの例はうまく機能します。しかし、JUnit BOMのインポートは、(私の謙虚な意見では)もう少しエレガントで、状況によってはより安全です。
アレクサンダーウェッセル2018年


7

参考までに、「junit5を使用したテストが見つからない」の別の原因は、(不注意または意図的に)テストケースを「プライベート」と宣言することです。

// Example of test case that doesn't get included
@Test
private void testSomeMethod() {
}

彼らは公開する必要があります。


6

また、ライブラリを追加するだけで同じ問題が発生しました。JUnitライブラリはEclipseとともにすでに提供されているため、以下に従う必要があります。

ビルドパス>ビルドパスの構成>ライブラリ>ライブラリの追加> JUnit>次へ>終了

わたしにはできる


それは日食でうまくいきました。バージョン:2020から06(4.16.0)ビルドID:20200615から1200
OJVM

4

新しいTestCaseを作成した後、同じ問題が発生しました:Eclipse-> New-> JUnit TestCase。アクセスレベル修飾子なしでクラスを作成します。classキーワードの前にpublicを置くだけで、問題を解決できました。


クラスとメソッドの両方にパブリックキーワードが必要です。junit.org/junit4/javadoc/4.12/org/junit/Test.html
hmehandi

4

最初からエラーメッセージは、クラスが見つからないことを示しています。 NoClassDefFoundErrorつまり、junitへのPATHに問題があるということです。

  1. 右クリックしてプロジェクトフォルダに移動し、[プロパティ]を選択するか、プロジェクトフォルダを選択してcmd + iの組み合わせを押します。

  2. リスト「Javaビルドパス」から選択します。

  3. 「ライブラリ」タブを選択します
  4. JUnit 5(またはJUnit 4)が「Modulepath」に追加されている場合は、「JUnit 5」を選択して、Removeを押します。
  5. 「クラスパス」を選択し、「ライブラリを追加...」を押します。
  6. 開いた「ライブラリの追加」ウィンドウから、JUnitを選択し、「次へ」を押します。
  7. 必要なJUnitライブラリのバージョンを選択し、Finishを押します。

以上です。もう一度テストを実行してみてください。


4

知っている必要があります :

@Before from junit4は@Testと一緒に行きます: " import org.junit.Test "

そして

Junit5の@BeforeEach次のようになります: " import org.junit.jupiter.api.Test "

したがって、同じバージョンのJunitからのインポートを使用していることを確認してください。そうしないと、機能しないと思います。


3

STS 3.9.1を使用すると、同じ問題が発生しました。ただし、現在、新しいJUnit5機能は必要ないため、古いバージョンを強制的に使用しようとしました。Mavenを使用している場合は、pom.xmlに次の依存関係を追加できます。

<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-launcher</artifactId>
    <version>${junit.platform.version}</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>${junit.jupiter.version}</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.junit.vintage</groupId>
    <artifactId>junit-vintage-engine</artifactId>
    <version>${junit.vintage.version}</version>
    <scope>test</scope>
</dependency>

これは私にとってはトリックでした(少なくともJUnit5を明示的に必要としない限り)。


JUnit5を使用しているのに、なぜ「org.junit.vintage」を追加したのですか?これは、下位互換性(古いJUnitの使用など)AFAIK専用です。
Levent Divilioglu 2018

そのプロジェクトとSTS3.9.1では、JUnit5ではなくJUnit4を使用できなかった/使用しなかったためです。
mahe 2018

3

誰もがそれのIDEのバグを知らせたように、私はしてみましたEclipseSTS。どちらの場合も、失敗しています。

回避策として、以下のようにpom.xmlファイルを変更して修正しました。

これらの2つのMaven依存関係junit-jupiter-engineとを追加しましたjunit-platform-launcher

pom.xml

<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform launcher -->
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit-platform.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

また、プロパティタグに両方のMaven依存関係のバージョンを必ず追加してください。

<properties>
    <java.version>1.8</java.version>
    <junit-jupiter.version>5.2.0</junit-jupiter.version>
    <junit-platform.version>1.2.0</junit-platform.version>
</properties>

1
junit-platform-launcher依存関係を追加すると、問題が解決しました。ありがとう
VenkateshManohar19年

3

日食2019-09を使用しています。

junit-bomバージョンを少なくとも5.4.0に更新する必要がありました。私は以前に5.3.1を持っていましたが、それがOPの同じ症状を引き起こしました。

私の設定は次のとおりです。

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>5.5.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

別のオプションは、POMプロパティに<JUnitの-jupiter.version> 5.4.0 </junit-jupiter.version>を追加することです
ウリロヤ・

2

コメントにコードブロックを投稿することはできないため、JUnit 5を必要とするプロジェクトで使用しているPOMテンプレートを次に示します。これにより、Eclipseでビルドして「JUnitテストとして実行」し、プレーンなMavenでプロジェクトをビルドできます。

<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>group</groupId>
    <artifactId>project</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>project name</name>

    <dependencyManagement>
      <dependencies>
        <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>5.3.1</version>
        <type>pom</type>
        <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>

    <dependencies>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <scope>test</scope>
      </dependency>

      <dependency>
        <!-- only required when using parameterized tests -->
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-params</artifactId>
        <scope>test</scope>
      </dependency>
    </dependencies>
</project>

JUnitを更新する場合は、バージョンを1か所で更新するだけでよいことがわかります。また、プラットフォームのバージョン番号は、(互換性のあるバージョンでは)POMのどこにも表示される必要はなく、junit-bomインポートによって自動的に管理されます。


2

私が使用しているもの:

Spring Tool Suite 4バージョン:4.4.2.RELEASEビルドID:201911201053 Javaバージョン:1.8.0_191

表示されるメッセージは、テストランナー「JUnit5」でテストが見つかりませんです。

私のために働いたのは以下の構成でした

    <properties>
        <java.version>1.8</java.version>
        <junit-jupiter.version>5.5.2</junit-jupiter.version>
        <junit-platform.version>1.5.2</junit-platform.version>
    </properties> 

    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit-platform.version}</version>
        <scope>test</scope>
    </dependency>

2

グループ: 'org.junit.platform'、名前: 'junit-platform-launcher'のJUnit5プラットフォームランチャーがありません

urPOMを追加するだけです。

<dependency>
       <groupId>org.junit.platform</groupId>
       <artifactId>junit-platform-launcher</artifactId>
    </dependency>

1

EclipseバージョンのOxygen.3aリリース(4.7.3a)で直面したのと同じエラー。Mavenの依存関係の不一致に問題があります。解決するために、次の依存関係でPom.xmlを更新しました。

http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0 com.netapp.junitnmactiopractice JunitAndMactioPractice0.0.1-スナップショット

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <junit.jupiter.version>5.1.1</junit.jupiter.version>
    <junit.platform.version>1.1.1</junit.platform.version>
</properties>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit.jupiter.version}</version>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-runner</artifactId>
        <version>${junit.platform.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>


あなたはJUnitの5ユーザガイドについて見てきましたjunit-platform-runner:「JUnitの4環境でJUnitのプラットフォーム上でテストし、テストスイートを実行するためのランナーを
のGerold Broser

1

あなただけ使用することができjunit-jupiter、テスト依存関係としての代わりにjunit-jupiter-apijunit-platform-launcherjunit-jupiter-engine

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.5.2</version>
    <scope>test</scope>
</dependency>

1
このソリューションは、JUnitの5.6.2、Javaの11で私のために働いた(および2020から03 / 4.15.0日食)
coseos

1

私の場合、ビルドパスを構成してJUnit 5ライブラリを追加し、依存関係を追加しました

     <dependency> 
        <groupId>org.junit.platform</groupId> 
        <artifactId>junit-platform-launcher</artifactId> 
        <version>1.1.0</version> 
        <scope>test</scope> 
     </dependency>

別々に。


1

私はEclipse(バージョン:2019-12(4.14.0))でもこの問題に直面しました。このソリューションは、IntelliJを使用するか、Mavenテストを使用してEclipseでそのようなテストを実行するようです。



1

私は実際にspring-tool-suite-4-4.5.1を使用しましたが、テストクラスを実行したいときにこのバグがありました。解決策は、ライブラリの「javaビルドパス」、「junit5」に追加することでした

ここに画像の説明を入力してください


0

変更する必要があります

@Test
public static void testmethod(){}

@Test
public void testmethod(){}

@Testは静的メソッドをサポートしていません


0

私は同じエラーに遭遇しました、そして私の場合、それはProject Properties > Maven > Update projectプロジェクトに行くか、そして/または掃除して再構築するという単純な問題でした。


0

EclipseメニューからTest.classを追加して、機能しました。右クリックしてプロジェクト->新規->その他-> JUnit-> JUnitテストケース


0

junit-platform-launcher / junit-platform-runnerのバージョンが原因である可能性があります。

1.1.0が機能しない

1.4.1は私のセットアップで動作します。

これは、他のバージョンではなくjunitのより高いバージョンのライブラリで動作しているため、Eclipseのバグだと思います。

これで私の問題は解決しました。他の解決策は、私には実行可能性が低いか、リスクが低いように見えました。ありがとう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.