Gradleでintegration testを作成するも実行できない(JUnit5)
Gradle で integration-test 用にテストディレクトリを分けようとして リファレンス を参考に build.gradle
を編集しました。
しかし、コンパイル対象には入っているようですがこのテストが実行されている気配がありません。
仕方なくデバッグログを出力してみたところ、次のようなログが出力されているのに気づきました:
2020-08-16T23:10:21.737+0900 [DEBUG] [TestEventLogger] Gradle Test Run :integrationTest STARTED 2020-08-16T23:10:21.746+0900 [DEBUG] [org.gradle.api.internal.tasks.testing.detection.AbstractTestFrameworkDetector] test-class-scan : failed to scan parent class java/lang/Object, could not find the class file 2020-08-16T23:10:21.747+0900 [DEBUG] [TestEventLogger]- 2020-08-16T23:10:21.747+0900 [DEBUG] [TestEventLogger] Gradle Test Run :integrationTest PASSED
"failed to scan parent class java/lang/Object, could not find the class file" でググったところ、次のエントリがヒットしました:
というわけで、JUnit5を利用する場合、 冒頭でリンクしたリファレンスの記述だけでは不十分で、実際には useJUnitPlatform()
も必要で、次のように記述する必要がありました:
build.groovy
task integrationTest(type: Test) { useJUnitPlatform() // これを追加! description = 'Runs integration tests.' group = 'verification' testClassesDirs = sourceSets.intTest.output.classesDirs classpath = sourceSets.intTest.runtimeClasspath shouldRunAfter test }