如何在测试中传递用户名和密码等参数
How to pass arguments such as username and password in a test
我使用下面的代码来初始化与 avi 控制器的连接,
func TestAvi(t *testing.T) {
aviClient, err := clients.NewAviClient("<CONTROLLERNAME>", "<USERID>",
session.SetPassword("<PASSWORD"),
session.SetTenant("<TENANT>"),
session.SetInsecure)
if err != nil {
t.Error(err)
}
然后我 运行 go test 命令到 运行 代码。
我想外部化 CONTROLLERNAME、USERID、PASSWORD 和 TENANT。这样我就可以将这些作为参数传递给 go test 命令。
有什么帮助吗?
我不建议通过 CLI args 传递它们,它们通常会被记录下来。
一个简单且使用最广泛的解决方案是通过环境变量传递此类信息,您可以使用 os.Getenv()
函数读取这些信息。
如何设置环境变量完全取决于您,并且可能因系统而异。
例如:
func TestAvi(t *testing.T) {
controller := os.Getenv("AVI_CONTROLLERNAME")
password := os.Getenv("AVI_PASSWORD")
tenant := os.Getenv("AVI_TENANT")
userID := os.Getenv("AVI_USERID")
aviClient, err := clients.NewAviClient(controller, userID,
session.SetPassword(password),
session.SetTenant(tenant),
session.SetInsecure)
// ...
}
我使用下面的代码来初始化与 avi 控制器的连接,
func TestAvi(t *testing.T) {
aviClient, err := clients.NewAviClient("<CONTROLLERNAME>", "<USERID>",
session.SetPassword("<PASSWORD"),
session.SetTenant("<TENANT>"),
session.SetInsecure)
if err != nil {
t.Error(err)
}
然后我 运行 go test 命令到 运行 代码。 我想外部化 CONTROLLERNAME、USERID、PASSWORD 和 TENANT。这样我就可以将这些作为参数传递给 go test 命令。
有什么帮助吗?
我不建议通过 CLI args 传递它们,它们通常会被记录下来。
一个简单且使用最广泛的解决方案是通过环境变量传递此类信息,您可以使用 os.Getenv()
函数读取这些信息。
如何设置环境变量完全取决于您,并且可能因系统而异。
例如:
func TestAvi(t *testing.T) {
controller := os.Getenv("AVI_CONTROLLERNAME")
password := os.Getenv("AVI_PASSWORD")
tenant := os.Getenv("AVI_TENANT")
userID := os.Getenv("AVI_USERID")
aviClient, err := clients.NewAviClient(controller, userID,
session.SetPassword(password),
session.SetTenant(tenant),
session.SetInsecure)
// ...
}