1 回答

TA貢獻1860條經(jīng)驗 獲得超9個贊
go 1.17剛剛添加了通過 T.Setenv 在測試期間更改環(huán)境變量的功能。
從文檔中:
T.Setenv calls os.Setenv(鍵,值)并在測試后使用“清理”將環(huán)境變量還原到其原始值。
這不能用于并行測試。
用法示例:
func getCreds() (u, p string) {
u, p = os.Getenv("USER"), os.Getenv("PASS")
return
}
func TestEnv(t *testing.T) {
t.Setenv("USER", "xxx")
t.Setenv("PASS", "yyy")
u, p := getCreds()
t.Logf("creds: %q / %q", u, p) // will get local testing env settings
}
func TestNoEnv(t *testing.T) {
u, p := getCreds()
t.Logf("creds: %q / %q", u, p) // will get nothing
}
https://play.golang.org/p/QBl3hV6WjWA
編輯:從評論中可以看出,您的(或DigialOcean)的測試函數(shù)使用命令行選項(如果您在問題中共享一些測試代碼,可能會有所幫助)。無論如何,如果是這種情況,調(diào)用和傳遞參數(shù)的正確方法是這樣的:FlagSetgo test
go test -args -spaces-key="KEY" -spaces-secret="S3CR3T"
如果你想通過ENV VAR,那么你之前的做法是正確的:
SCOREKEEPER_SPACES_KEY="key" SCOREKEEPER_SPACES_SECRET="s3cr3t" go test
- 1 回答
- 0 關注
- 98 瀏覽
添加回答
舉報