为Go测试设置环境变量

Ric*_*nop 3 automated-tests environment-variables go

我试图像这样运行我的Go测试,设置一个环境变量:

FOO=BAR go list ./... | grep -v vendor | xargs -n1 go test -timeout=3s
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我做:

log.Print(os.Getenv("FOO"))
Run Code Online (Sandbox Code Playgroud)

返回一个空字符串.为什么不设置FOO?

ryn*_*nop 8

我喜欢在命令模式下使用godotenv

godotenv -f ./.env go test ./internal/... -cover
Run Code Online (Sandbox Code Playgroud)


kos*_*tya 7

FOO=BAR bash -c 'go list ./... | grep -v vendor | xargs -n1 go test -timeout=3s'
Run Code Online (Sandbox Code Playgroud)

原始命令无效的原因可以在问题的答案中找到:https://unix.stackexchange.com/questions/134735/environment-variables-are-not-set-when-my-function -is所谓-IN-A-管道