Kotest IntelliJ Plugin プロパティ(Properties)
Kotest の IntelliJ Plugin でプロパティを設定する方法について紹介する。
IntelliJ runner を通じてテストを実行する場合、runner が Gradle を使用するように設定されていないため、gradle.properties または Gradle ビルドファイルで設定したプロパティは選択されない。
実行時システムプロパティをサポートするために、Kotest フレームワークは常にクラスパス上、たとえば src/main/resources にある kotest.properties ファイル内のキー値ペアを探す。
このファイル内のすべてのキー値ペアは、テストが実行される前にシステムプロパティとして設定される。
TIP
`kotest.properties` ファイルに指定されたすべてのプロパティは、Gradle 経由のコマンドラインと IntelliJ プラグイン経由で実行されるテストの両方で動作する。
たとえば、クラスパス上の 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 というキー値ファイルがロードされる。