しおしお

IntelliJ IDEAのことなんかを書いてます

Gradle4.6-rc1からのJUnit5サポートを試してみた

Gradle4.6からのJUnit5サポートをお試ししてみた。

これより古いバージョンはGradleからJUnit5のテストを実行する - しおしおのエントリのようにする必要があると。

build.gradleの内容

test.useJUnitPlatformでJUnit5を有効化してあげる。
これだけでよくて、昔のバージョンのようにJUnit Platform Gradle Pluginは不要になる。

buildscript {
  ext.junit_version = '5.0.3'
}

test {
  useJUnitPlatform()

  // ログを出力したい場合…
  testLogging {
    events "passed", "skipped", "failed", "standardOut", "standardError"
  }
}

dependencies {
  
  testImplementation "org.junit.jupiter:junit-jupiter-api:$junit_version"
 
  testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit_version"
}

実行

./gradlew clean testで実行する。
ログを有効かしていると、こんな感じのものが出力される。

:test
sample.ParameterizedSampleTest > [1] 1 PASSED
sample.ParameterizedSampleTest > [2] 2 PASSED
sample.JUnit5Sample > test() PASSED
sample.ParamTest > [1] hoge, 4 PASSED
sample.ParamTest > [2] 1, 1 PASSED
sample.ParamTest > [1] (hoge, 4) PASSED
sample.ParamTest > [2] (abcdefg, 7) PASSED
BUILD SUCCESSFUL in 2s

テストのレポートはhtmlファイルでbuild/reports/testsに出力される。
JUnit Platform Gradle Pluginのようにxmlのテスト結果だけじゃないので良い感じ。

JaCoCoプラグイン

下を追加して、./gradlew clean test jacocoTestReportカバレッジが取れるようになる。

apply plugin: 'jacoco'

Gradle&JUnit5でJaCoCoを使う - しおしおみたいなことも要らなくなる。


おわり。