Kotest Intellij Plugin 속성(Properties)

Kotest의 Intellij Plugin에서 속성을 설정하는 방법에 대해서 소개한다.

Intellij 실행기를 통해 테스트를 실행할 때, 실행기가 Gradle을 사용하도록 설정되지 않았기 때문에 gradle.properties 또는 gradle 빌드 파일에서 설정한 속성이 선택되지 않는다.

런타임 시스템 속성을 지원하기 위해 Kotest 프레임워크는 항상 클래스 경로(예: src/main/resources)에 있는 kotest.properties 파일 내에서 키 값 쌍을 찾는다.

이 파일에 있는 모든 키 값 쌍은 테스트가 실행되기 전에 시스템 속성으로 설정된다.

예를 들어, 클래스 경로에 있는 kotest.properties 이 파일에 다음과 같이 추가한다:

foo=bar

그러고, 다음 테스트가 실행하면 통과된다:

class FooTest : DescribeSpec() {
  init {
    describe("after adding kotest.properties") {
      it("foo should be set") {
         System.getProperty("foo") shouldBe "bar"
      }
    }
  }
}

일반적인 사용 사례

이러한 기능을 사용하지 않는 경우 시작 시간을 절약하기 위해 Kotest의 클래스 경로 스캔 기능을 비활성화하는 것이 일반적이다. 이렇게 하려면 kotest.properties 파일에 다음과 같이 추가한다:

kotest.framework.classpath.scanning.config.disable=true
kotest.framework.classpath.scanning.autoscan.disable=true

속성 파일 이름 지정하기

파일 이름을 kotest.properties로 지정하고 싶지 않거나 환경에 따라 다른 파일을 지원하려는 경우 시스템 속성인 kotest.properties.filename을 사용하여 속성 파일 이름을 설정할 수 있다.

예를 들어, kotest.properties.filename=cluster.prd.properties로 테스트를 시작하면 테스트가 실행되기 전에 cluster.prd.properties라는 키 값 파일이 로드된다.


참조




최종 수정 : 2024-04-21