web-dev-qa-db-ja.com

IntelliJでjUnit 5テストを実行するGradleプロジェクト

現在、GradleとjUnit5の両方を試しています。特定のjUnitテストを実行できないことを除いて、すべて正常に動作します。テストクラスを右クリックしても、[Run'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の答えに続いて、これが私がすべてを機能させるためにしたことです。 _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_

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

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

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 を参照してください

10
dunni

最新のIdea2016.2は、JUnit5フレームワークをサポートするようになりました。 junit-gradle-pluginがなくてもJUnit5テストを直接実行できます。 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);
        }
    }
    
  • 左側のプロジェクトペインでこのテストクラスを右クリックし、[実行] FirstJUnit5Testを選択します。結果は次のように表示されます。 enter image description here
  • 詳細については、チェックアウトできます githubからのこのプロジェクト

[〜#〜]更新[〜#〜]

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

dependencies {
    testCompile("org.junit.jupiter:junit-jupiter-api:5.0.0-M3")
}
13
walsh

IntelliJ 2016.1.3にはJUnit 5テストランナーがないため、 JUnit 4ランナーでテストを実行する する必要があります。

ドキュメントでリンクされているサンプル_pom.xml_から始める場合は、 https://github.com/junit-team/junit5-samples/blob/r5.0.0-M1/junit5-maven-consumer /pom.xml 次に、次の2つのことを行います。

依存関係をもう1つ追加します

_    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-runner</artifactId>
        <version>${junit.platform.version}</version>
    </dependency>
_

次にテストクラスをpublicにし、@RunWith(JUnitPlatform.class)で注釈を付けます。

これで、IDEはクラスをテストとして認識し、統合を提供します。

0
user7610