はじめに
VSCodeのエディタ上からGoのテストを行う際に、事前に環境変数をセットする方法を共有します。
例えば、以下のようなテストコードを想定します。
func TestEnvVar(t *testing.T) {
// 環境変数から値を取得
envVar := os.Getenv("MY_ENV_VAR")
// 環境変数が設定されているかをチェック
if envVar == "" {
t.Error("Environment variable MY_ENV_VAR is not set")
} else {
fmt.Printf("MY_ENV_VAR value: %s\n", envVar)
}
}
環境変数を取得し、値がセットされているかを確認するコードです。しかしながら、VSCodeのrun test
からテストを実行すると、環境変数がテスト実行時に存在しないため、このテストは失敗します。
本来であれば、以下のように環境変数がセットされた状態でテストが実行されてほしいです。
MY_ENV_VAR="helloworld" go test
解決策
VSCodeの設定ファイルsettings.json
に以下のように環境変数を記述することで解決されます。
{
"go.testEnvVars": {
"MY_ENV_VAR": "helloworld"
}
}
この設定により、go test
実行時にMY_ENV_VAR
環境変数がhelloworld
という値でセットされます。
また、.env
ファイルなどのファイルから環境変数をセットしたい場合は、次のように記述します。
{
"go.testEnvFile": "${workspaceFolder}/.env"
}
この設定により、現在のワークスペースの.env
ファイルから環境変数が読み込まれます。
参考