web-dev-qa-db-ja.com

Eclipseは「テストランナーJUnit 5でテストが見つかりませんでした」と言い続けます

私はEclipse Oxygen.3リリース(4.7.3)を使用しています。以下は、私のJUnitテストクラスです。

import static org.junit.Assert.assertEquals;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

class MyMathTest {
    MyMath myMath = new MyMath();

    @Before
    public void before() {
        System.out.println("Before");
    }

    @After
    public void after() {
        System.out.println("After");
    }

    @Test
    public void testSum_with3numbers() {
        System.out.println("Test1");
        int result = myMath.sum(new int[] {1,2,3});
        int expected = 6;
        assertEquals(expected, result);
    }

    @Test
    public void testSum_with1numbers() {
        System.out.println("Test2");
        int result = myMath.sum(new int[] {3});
        int expected = 3;
        assertEquals(expected, result);
    }

    @BeforeClass
    public static void beforeClass() {
        System.out.println("Before class");
    }

    @AfterClass
    public static void afterClass() {
        System.out.println("After class");
    }

}

このJunitテストを実行すると、Eclipseがポップアップダイアログを表示し続けます「テストランナー 'JUnit 5'でテストが見つかりませんでした」。どうして?

enter image description here

7
Leem

テストクラスはorg.junitパッケージのアノテーションを使用するため、現在JUnit 4に基づいています。

したがって、EclipseでJUnit 4テストクラスとして実行するには、「実行構成」でJUnit 4ランナーを選択する必要があります。緑色の円の横にある小さな矢印(下向き)をクリックします(Eclipse IDEの上部にある)。テストクラスが表示され、JUnit 4ランナーとJUnit 5ランナーを切り替えることができます。

一方、JUnit Jupiter(つまり、JUnit 5のプログラミングモデル)を使用してテストを作成することが目的の場合は、org.junitのアノテーションからorg.junit.jupiter.apiに切り替える必要があります。

9
Sam Brannen

Eclipse 2019-09(4.13)には、「テストランナー 'JUnit 5'でテストが見つかりませんでした」というエラーが発生する可能性があるバグがあります: https://bugs.Eclipse.org/bugs/show_bug.cgi?id = 551298

次の依存関係をプロジェクトに追加しましたが、うまくいきました。

<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-commons</artifactId>
    <version>1.5.2</version><!--$NO-MVN-MAN-VER$-->
    <scope>test</scope>
</dependency>
3
Markus Hettich

私のテストメソッドがプライベートとして宣言され、JUnitがそれを検出できなかったため、これは私に起こりました。私がそれを公開した後、それはもちろん@Testアノテーションで期待通りに機能しました。

2

JUnit 5の依存関係を持つJUnit 4アノテーションを使用しています。 JUnit 5を使用する場合は、次のものを置き換える必要があります。
「@ Before」と「@BeforeEach」
'@ AfterEach'と '@AfterEach'
「@ BeforeAll」と「@BeforeAll」
「@ AfterAll」と「@AfterAll」

JUnit 5アノテーションの詳細 https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations/

1
salerokada

インポートをもう一度見てみましょう。

import org.junit.Test;をインポートします(JUnit 4でのテストケースの実行に使用されます)

JUnit5でケースを実行するには、import org.junit.jupiter.api.Test;をインポートする必要があります。

1

同じエラーが発生しましたが、すべて試しましたが、JUnitライブラリが追加されていないことに気付きました。したがって、追加後、テストは意図したとおりに機能しました。

1
S. Stupar

右クリックして次のように実行-> config->この変更を行い、実行すると乾杯します!!。 enter image description here

0
Arun Kumar T

テストクラスはパブリックではありません、それをパブリックにすると機能します

0
Karsankaka