JUnit 5テスト実行方法 - ConsoleLauncher, Gradle

ConsoleLauncherとGradleでJUnit 5を実行する方法

ConsoleLauncherの使い方

JUnit 5を実行するためのコマンドラインツールとして、ConsoleLauncherが用意されている。JARファイルとして配布されているため、Maven Central Repositoryからダウンロードして使用する。この例ではバージョン1.9.1を使用した。

テスト実行方法

テストクラスは通常、build/classes/java/testまたはtarget/test-classesに配置される。

テストクラスパス上のすべてのテストを実行する:

$ java -jar junit-platform-console-standalone-1.9.1.jar \
    --classpath build/classes/java/test \
    --scan-classpath

--classpath-cpに短縮できる。JUnit 5のクラスはstandalone JARに含まれており、-cpにはテストで使用する追加依存関係を指定できる。

特定クラスを実行する:

$ java -jar junit-platform-console-standalone-1.9.1.jar \
    -cp build/classes/java/test \
    --select-class com.devkuma.junit5.JUnit5Test

--select-class-cに短縮できる。--select-packageでパッケージを選択したり、--include-classnameと正規表現でクラス名を絞り込むこともできる。

テスト実行出力

テスト結果はコンソールに出力される。成功、失敗、失敗詳細、コンテナ数、テスト数などが含まれる。

コマンドヘルプ

ConsoleLauncherには他にも多くのオプションがある。次のコマンドで確認できる。

$ java -jar junit-platform-console-standalone-1.9.1.jar --help

Gradleでのテスト実行

多くの場合、テストは使用しているビルドツールから実行する。Gradleは4.6からJUnit 5の実行を標準でサポートしている。

Gradle設定

GradleはJUnit 4やTestNGなど他のテストフレームワークもサポートする。JUnit 5を使う場合は、useJUnitPlatform()を明示的に宣言する。

build.gradle

test {
    useJUnitPlatform()
}

テストコード実行

すべてのテストが成功した場合、GradleはBUILD SUCCESSFULを出力する。失敗が含まれる場合、testタスクは失敗し、失敗したテスト名とbuild/reports/tests/test/index.htmlなどのレポートパスが表示される。

静的ネストクラスはテストとして実行できるが、通常の内部クラスはデフォルトでは実行されない。