你好,我是Go的新手,正在编写一个简单的应用程序,该应用程序从环境变量中获取一些配置信息。如下所示,我在init函数中执行此操作。
type envVars struct {
Host string `env:"APP_HOST"`
Username string `env:"APP_USERNAME"`
Password string `env:"APP_PASSWORD"`
}
var envConfig envVars
func init() {
if err := env.Parse(&envConfig); err != nil {
log.Fatal(err)
}
}
我编写了一个测试来验证环境变量是否被正确读取。但问题是,我的程序的初始化函数甚至在我的测试初始化函数之前就已经被调用了。有没有办法在我的程序初始化函数被调用之前进行一些设置。
func init() {
os.Setenv("APP_HOST", "http://localhost:9999")
os.Setenv("APP_USERNAME", "john")
os.Setenv("APP_PASSWORD", "doe")
}
func TestEnvConfig(t *testing.T) {
assert.NotNil(t, envConfig)
assert.Equal(t, "http://localhost:9999", envConfig.Host)
}