Kotest JUnit XML Format Reporter
Kotest는 JUnit XML 형식의 테스트 보고서를 생성할 수 있다. 이 형식은 CI/CD 도구와 같은 자동화된 테스트 실행 환경에서 사용될 수 있다. JUnit XML 보고서는 테스트 수행 결과를 기록하고 이를 분석하여 테스트 결과에 대한 통계 및 품질 지표를 생성하는 데 사용된다.
JUnit에는 레거시 xml 보고서라고 부르는 XML 보고서 생성기가 포함되어 있다. 많은 도구들이 이 형식과 통합되므로 매우 유용하다. 그러나 이 보고서에는 중첩 테스트(nesting tests)라는 개념이 없다. 따라서 Kotest에서 중첩 테스트 스타일과 함께 사용하면 부모 테스트가 고아로 포함된다.
이 문제를 해결하기 위해 Kotest에는 동일한 형식의 자체 구현이 있으며, 상위 테스트를 포함할지 또는 이름을 축소할지 여부를 구성할 수 있다.
프로젝트에서 구성하려면 프로젝트 구성을 사용하여 JunitXmlReporter
를 추가해야 한다.
class MyConfig : AbstractProjectConfig() {
override fun extensions(): List<Extension> = listOf(
JunitXmlReporter(
includeContainers = false, // don't write out status for all tests
useTestPathAsName = true, // use the full test path (ie, includes parent test names)
outputDir = "../target/junit-xml" // include to set output dir for maven
)
)
}
또한 리포터는 시스템 속성을 설정하여 빌드 출력 폴더가 어디에 있는지 알아야 한다. 또한 Gradle은 자체적으로 JUnit XML 보고서를 생성해서는 안 된다는 것을 알아야 한다. Gradle의 테스트 블록에서 이를 구성한다.
tasks.named<Test>("test") {
useJUnitPlatform()
reports {
junitXml.required.set(false)
}
systemProperty("gradle.build.dir", project.buildDir)
}
매개변수
리포터에는 3가지 매개변수가 있다:
includeContainers
가true
이면 모든 중간 테스트가 보고서에 자체 테스트로 포함된다. 기본값은false
이다.useTestPathAsName
가true
이면 전체 테스트 경로가 이름으로 사용된다. 즉, 이름에 모든 상위 테스트의 이름이 단일 문자열로 포함된다.outputDir
설정하면 해당 폴더에 보고서가 생성되며, 기본값은test-results/test
이다.
참고
최종 수정 : 2024-04-21