しおしお

IntelliJ IDEAのことなんかを書いてます

JUnit Pioneerを使ってJUnit5のテスト実行時に環境変数を設定する

JUnit5なテスト実行時に環境変数を設定(クリア)できる、拡張のGitHub - junit-pioneer/junit-pioneer: JUnit 5 Extension Packを試してみました。

テスト実行時に環境変数を設定する

環境変数の設定は@SetEnvironmentVariableアノテーションで行います。 テストクラス、テストメソッド両方に指定ができるので、どのようなスコープで設定するかで使い分けることができるようになっています。

@SetEnvironmentVariable(key = "k1", value = "v1")
class HogeTest {

    @Test
    @SetEnvironmentVariable(key = "k2", value = "v2")
    fun 環境変数を設定してみる() {
        println("System.getenv(\"k1\") = ${System.getenv("k1")}")
        println("System.getenv(\"k2\") = ${System.getenv("k2")}")
    }
}

実行結果

設定した環境変数が設定され、参照できているのが確認できます。

System.getenv("k1") = v1
System.getenv("k2") = v2

テスト実行後に環境変数をクリアする

環境変数のクリアは@ClearEnvironmentVariableアノテーションで行います。 @SetEnvironmentVariableと同じように、テストクラスとテストメソッドの両方に指定が可能となっています。

    @Test
    @SetEnvironmentVariable(key = "k2", value = "v2")
    @ClearEnvironmentVariable(key = "k2")
    fun 環境変数を設定してみる() {
        println("System.getenv(\"k1\") = ${System.getenv("k1")}")
        println("System.getenv(\"k2\") = ${System.getenv("k2")}")
    }

おわり