Kotest IntelliJ Plugin プロパティ(Properties)

Kotest の IntelliJ Plugin でプロパティを設定する方法について紹介する。

IntelliJ runner を通じてテストを実行する場合、runner が 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 というキー値ファイルがロードされる。


参照