Kotest 다른 설정(Other settings)
Kotest에서 빠르게 실패하는 방법, 빈 테스트인 경우 실패하게 하는 방법 등에 대해서 설명한다.
빠른 실패
Kotest는 테스트 중 하나가 실패할 경우 테스트 목록을 빠르게 실패시킬 수 있다. 이를 빠른 실패(Fail Fast)라고 한다.
빠른 실패은 사양 수준 또는 상위 테스트 수준에서 적용될 수 있다.
다음 예제에서는 부모 테스트에 대해 빠른 실패 기능을 활성화하고 해당 컨텍스트 내에서 첫 번째 실패가 발생하면 나머지는 건너뛰게 된다.
class FailFastTests() : FunSpec() {
init {
context("context with fail fast enabled").config(failfast = true) {
test("a") {} // pass
test("b") { error("boom") } // fail
test("c") {} // skipped
context("d") { // skipped
test("e") {} // skipped
}
}
}
}
이 기능은 스펙 수준에서 페일패스트를 설정하여 스펙의 모든 범위에 대해 활성화할 수 있다.
class FailFastTests() : FunSpec() {
init {
failfast = true
context("context with fail fast enabled at the spec level") {
test("a") {} // pass
test("b") { error("boom") } // fail
test("c") {} // skipped
context("d") { // skipped
test("e") {} // skipped
}
}
}
}
빈 테스트 스위트에서 실패
프로젝트가 항상 하나 이상의 테스트를 실행하도록 하려면 프로젝트 구성에서 failOnEmptyTestSuite
를 활성화하면 된다.
이 옵션을 true
로 설정하고 모듈에 실행된 테스트가 없는 경우 빌드가 실패한다.
class ProjectConfig : AbstractProjectConfig() {
override val failOnEmptyTestSuite = true
}
TIP
테스트 정의 여부와 관계없이 테스트가 실행되지 않으면 모듈이 비어 있는 것으로 간주된다. 이는 환경 특정 설정 등으로 인해 테스트가 잘못 필터링되는 시나리오를 포착하는 데 유용하다.Config Dump
Kotest는 테스트 엔진이 시작될 때 테스트 실행에 사용될 구성을 선택적으로 인쇄할 수 있다. 이렇게 하려면 시스템 속성 또는 환경 변수를 설정하고 이름은 kotest.framework.dump.config
값은 true
로 설정한다.
test {
systemProperty "kotest.framework.dump.config", "true"
}
예를 들어 gradle을 사용하면 테스트 작업 구성 블록 내에서 시스템 속성을 설정한다.
~~~ Kotest Configuration ~~~
-> Parallelization factor: 1
-> Concurrent specs: null
-> Global concurrent tests: 1
-> Dispatcher affinity: true
-> Coroutine debug probe: false
-> Spec execution order: Lexicographic
-> Default test execution order: Sequential
-> Default test timeout: 600000ms
-> Default test invocation timeout: 600000ms
-> Default isolation mode: SingleInstance
-> Global soft assertions: false
-> Write spec failure file: false
-> Fail on ignored tests: false
-> Fail on empty test suite: false
-> Duplicate test name mode: Warn
-> Remove test name whitespace: false
-> Append tags to test names: false
-> Extensions
- io.kotest.engine.extensions.SystemPropertyTagExtension
참조
최종 수정 : 2024-04-14