如何在测试中传递用户名和密码等参数

我使用下面的代码来初始化与 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命令。


请问有什么帮助吗?


慕虎7371278
浏览 91回答 1
1回答

慕容森

我不建议通过 CLI args 传递它们,它们通常会被记录下来。一个简单且使用最广泛的解决方案是通过环境变量传递此类信息,您可以使用该os.Getenv()函数读取这些信息。如何设置环境变量完全取决于您,并且可能因系统而异。例如:func TestAvi(t *testing.T) {&nbsp; &nbsp; controller := os.Getenv("AVI_CONTROLLERNAME")&nbsp; &nbsp; password := os.Getenv("AVI_PASSWORD")&nbsp; &nbsp; tenant := os.Getenv("AVI_TENANT")&nbsp; &nbsp; userID := os.Getenv("AVI_USERID")&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; aviClient, err := clients.NewAviClient(controller, userID,&nbsp; &nbsp; &nbsp; &nbsp; session.SetPassword(password),&nbsp; &nbsp; &nbsp; &nbsp; session.SetTenant(tenant),&nbsp; &nbsp; &nbsp; &nbsp; session.SetInsecure)&nbsp; &nbsp; // ...}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go