Kotest HTMLレポート(Reporter)

KotestはHTML形式のテストレポートを生成できるHTML Reporterを提供する。これによりテスト実行結果を視覚的に確認でき、テスト実行に関する詳細情報を提供する。

JUnit XMLを使用するとき、ネストされたテストを通じて出力を生成できるテストでXML結果を生成できる。残念ながら、Gradleはネストされたテストをサポートしないインメモリ結果を使ってHTMLレポートを生成し、別のXMLから結果を取り込むことはできないようである。

この問題を解決するために、KotestにはJUnit XMLで生成されたXMLレポートを基にHTMLレポートを生成できるリスナーがある。

これを使用するには、プロジェクト構成を通じてリスナーとして追加するだけでよい。

class ProjectConfig : AbstractProjectConfig() {

   override val specExecutionOrder = SpecExecutionOrder.Annotated

    override fun extensions(): List<Extension> = listOf(
        JunitXmlReporter(
            includeContainers = false,
            useTestPathAsName = true,
        ),
        HtmlReporter()
    )
}

そして、テストタスクにhtml.required.set(false)を追加し、Gradleが独自のHTMLレポートを生成しないようにする。

tasks.test {
  useJUnitPlatform()
  reports {
    html.required.set(false)
    junitXml.required.set(false)
  }
  systemProperty("gradle.build.dir", project.buildDir)
}

JunitXmlReporterも追加する。これにより、HTMLレポート生成に必要なXMLレポートが生成される。追加構成は不要で、HTMLレポート生成を開始するだけでよい。

デフォルトでは/to/buildDir/reports/tests/testにレポートを保存するが、outputDirパラメータを変更して修正できる。


参考