私たちは次のことを行いますMakefile
。
test:
export SOME_ENV=someTest
go test -tags=integration -v -race ./tests/integrationtest/...
シェルプロンプトでSOME_ENVを設定し、次のコマンド()はgo test
内部的に.someTest.env
ファイルを選択します。
$ export SOME_ENV=someTest
$ go test -tags=integration -v -race ./tests/integrationtest/...
しかし、Makefileメソッドは機能しません。
Makefile
環境変数を設定する方法がないのはなぜですか?
注:Makefileには、このエクスポートの影響を受けない別の操作があります。
ベストアンサー1
レシピの各行は、別々のシェル呼び出しを使用して実行されます。だから
export SOME_ENV=someTest
実行された後、新しいシェルで
go test ...
後者は環境変数を見ることができません。
変数をエクスポートするには、Makeのコンストラクタを使用する必要があります。
export SOME_ENV := someTest
test:
go test ...
またはインライン変数を指定します。
test:
SOME_ENV=someTest go test ...
または、次の2行が同じシェルで実行されていることを確認してください。
test:
export SOME_ENV=someTest && \
go test ...