猿问

为 Go 测试设置环境变量

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

FOO=BAR go list ./... | grep -v vendor | xargs -n1 go test -timeout=3s

在我的测试中,我这样做:

log.Print(os.Getenv("FOO"))

它返回一个空字符串。为什么没有设置FOO?


慕神8447489
浏览 339回答 3
3回答

慕雪6442864

FOO=BAR bash -c 'go list ./... | grep -v vendor | xargs -n1 go test -timeout=3s'可以在问题的答案中找到为什么原始命令不起作用的一个很好的解释:https : //unix.stackexchange.com/questions/134735/environment-variables-are-not-set-when-my-function -被称为管道中

慕侠2389804

我喜欢在命令模式下使用godotenvgodotenv -f ./.env go test ./internal/... -cover

DIEA

这不是为管道设置变量的方式。看: FOO=BAR echo "AAA" | FOO=WAZ printenv | grep FOO
随时随地看视频慕课网APP

相关分类

Go
我要回答