12

現在、Gradle と jUnit5 の両方を試しています。特定の jUnit テストを実行できないことを除いて、すべて正常に動作します。テスト クラスを右クリックしても、['SampleTest' を実行] オプションが表示されません。

最新バージョンの IntelliJ (2016.1.3) Ultimate を使用しています。これが私のbuild.gradleファイルです:

repositories {
    mavenCentral()
}

apply plugin: 'java'

version = '1.0.0-SNAPSHOT'

jar {
    baseName = 'test-project'
}

dependencies {
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.0.0-M1'
}

プロジェクト構造は標準的なものです (Maven のように)。テストの例を次に示します。

package com.test;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

public class SampleTest {
  @Test public void sampleTest() {
    int test = 1;
    Assertions.assertTrue(test == 1);
  }
}

私は何が欠けていますか?

編集:

Gradle も私のテストを取得していないようです。に行くとbuild/reports/tests/index.html、0 テストを示します。

最終編集:

@dunny's answer に続いて、すべてを機能させるために私がしたことは次のとおりです。build.gradleファイルを次のように変更しました。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.0-M1'
    }
}

repositories {
    mavenCentral()
}

apply plugin: 'java'
apply plugin: 'org.junit.platform.gradle.plugin'

version = '1.0.0-SNAPSHOT'

jar {
    baseName = 'test-project'
}

dependencies {
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.0.0-M1'
    testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: '1.0.0-M1'
    testCompile group: 'junit', name: 'junit', version: '4.12'
    testRuntime group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.0.0-M1'
}

test {
    testLogging {
        events 'started', 'passed'
    }
}

次に、IntelliJ で Gradle ウィンドウを開き、[すべての gradle プロジェクトを更新] ボタンをクリックして、ライブラリを更新しました。

次に、テスト クラス@RunWith(JUnitPlatform.class)で、クラス宣言の上に追加しました。

を実行するgradle buildと、結果は次の場所で入手できます。build\test-results\junit-platform\TEST-junit-jupiter.xml

4

3 に答える 3

13

最新の Idea 2016.2 は、現在 JUnit 5 フレームワークをサポートしています。junit-gradle-plugin なしで JUnit5 テストを直接実行できます。WHAT'S NEW IN INTELLIJ IDEAをご覧ください。アイデアをこの新しいバージョンにアップグレードした後、gradle プロジェクトを作成し、次の手順を実行して JUnit 5 テストの実行方法をテストできます。

  • build.gradle

    apply plugin: 'java'
    
    compileTestJava {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        testCompile("org.junit.jupiter:junit-jupiter-api:5.0.0-M1")
        testRuntime("org.junit.vintage:junit-vintage-engine:4.12.0-M1")
        //NOTE: if you replaced above testRuntime dependency with following
        //testRuntime("org.junit.jupiter:junit-jupiter-engine:5.0.0-M1")
        //this test would fail.
    }
    
  • テスト ソース フォルダーにクラス FirstJUnit5Test を作成します。

    import org.junit.jupiter.api.Test;
    import static org.junit.jupiter.api.Assertions.assertEquals;
    
    public class FirstJUnit5Test {
        @Test
        void myFirstTest() {
            assertEquals(2, 1 + 1);
        }
    }
    
  • 左側のプロジェクト ペインでこのテスト クラスを右クリックし、[Run 'FirstJUnit5Test'] を選択します。次のような結果が表示されます。 ここに画像の説明を入力
  • 詳細については、このプロジェクトを github からチェックアウトできます。

アップデート

IDEA 2016.3.3 以降では、dependencies構成を次のように簡略化できます。

dependencies {
    testCompile("org.junit.jupiter:junit-jupiter-api:5.0.0-M3")
}
于 2016-07-21T16:35:44.563 に答える
10

IntelliJ 2016.1.3 は JUnit 5 テストをサポートしていません。ただし、JUnit 4 互換モードでテストを実行するアノテーション@RunWith(JUnitPlatform.class)を追加することはできます (JUnit 5 のすべての機能を引き続き使用できます)。詳細については、 http://junit.org/junit5/docs/current/user-guide/#running-tests-junit-platform-runnerを参照してください。

Gradle の場合、サポートを有効にするために Gradle JUnit 5 プラグインを含める必要があります。

buildscript {
    repositories {
        mavenCentral()
        // The following is only necessary if you want to use SNAPSHOT releases.
        // maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
    }
    dependencies {
        classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.0-M1'
    }
}

apply plugin: 'org.junit.platform.gradle.plugin'

http://junit.org/junit5/docs/current/user-guide/#running-tests-buildを参照してください

于 2016-07-10T16:41:30.277 に答える