web-dev-qa-db-ja.com

GradleでJUnitテストを実行する方法は?

現在、次のbuild.gradleファイルがあります。

apply plugin: 'Java'

sourceSets {
    main {
        Java {
            srcDir 'src/model'
        }
    }
}

dependencies {
    compile files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar')
    runtime fileTree(dir: 'libs', include: '*.jar')
}    


このbuild.gradleファイルはリポジトリ用です here 。私のメインファイルはすべてsrc/model /にあり、それぞれのテストはtest/model

JUnit 4dependencyを正しく追加し、tests/model

79
Q Liu

Junit 4依存関係を正しく追加するにはどうすればよいですか?

標準のMaven(または同等の)リポジトリに対して解決すると仮定します。

dependencies {
    ...
    testCompile "junit:junit:4.11"  // Or whatever version
}

テスト/モデルのフォルダーでこれらのテストを実行しますか?

同じ方法でテストソースセットを定義します。

sourceSets {
    ...

    test {
        Java {
            srcDirs = ["test/model"]  // Note @Peter's comment below
        }
    }
}

次に、次のようにテストを呼び出します。

./gradlew test

編集:代わりにJUnit 5を使用している場合、完了するにはさらに手順があります。 このチュートリアル に従う必要があります。

86

デフォルトのgradleパッケージ構造でプロジェクトをセットアップした場合、つまり:

src/main/Java
src/main/resources
src/test/Java
src/test/resources

テストを実行するためにsourceSetsを変更する必要はありません。 Gradleは、テストクラスとリソースがsrc/testにあることを把握します。その後、Oliverが上記のように実行できます。注意すべき点が1つあります。プロパティファイルを設定し、GradleとIDEの両方でテストクラスを実行する場合は注意してください。私はEclipseを使用し、それからJUnitを実行するとき、Eclipseは1つのクラスパス(binディレクトリ)を選択しますが、gradleは別のクラスパス(ビルドディレクトリ)を選択します。これは、リソースファイルを編集し、テストランタイムに変更が反映されない場合に混乱を招く可能性があります。

43
DivDiff

Spring Initializr を使用してプロジェクトを作成した場合、すべてを正しく構成する必要があり、実行する必要があるのは実行するだけです...

./gradlew clean test --info
  • テスト出力を表示したくない場合は、--infoをドロップします。
  • 最後の変更以降に既に合格したテストを再実行したくない場合は、cleanをドロップします。

Spring Bootでテストするためにbuild.gradleで必要な依存関係...

dependencies {
    compile('org.springframework.boot:spring-boot-starter')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

何らかの理由で、テストランナーはこれを通知しませんが、build/reports/tests/test/index.htmlでHTMLレポートを生成します。

11
nobar