Kotest HTML 보고서(Reporter)

Kotest는 HTML 형식의 테스트 보고서를 생성할 수 있는 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을 변경하여 수정할 수 있다.


참고




최종 수정 : 2024-04-14