为了账号安全,请及时绑定邮箱和手机立即绑定

如何并行运行需要不同环境变量值的测试

如何并行运行需要不同环境变量值的测试

Go
料青山看我应如是 2023-07-31 10:48:24
我有一个 Go 应用程序,应用程序在启动时读取环境变量。应用程序使用环境变量的值来配置自身。现在,根据环境变量的值之一,应用程序的设置与同一环境变量的其他值不同。我想在单元测试中测试这两个设置。我还想并行运行这些测试。我可以在一个测试中使用设置环境变量值os.Setenv(),但这也会影响并行运行的另一个测试,该测试试图为同一环境变量设置不同的值。在这种情况下,最佳做法是什么?我们如何设置不影响单元测试的环境变量值。
查看完整描述

1 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

不要在测试中使用环境变量。相反,将配置传递到您测试的函数中。在正常启动期间,从环境中读取该配置,但在测试期间,直接将其传入。例子:


你的代码:


func main() {

    envFoo := os.Getenv("FOO")

    if err := someFunc(envFoo); err != nil {

        log.Fatal(err)

    }

}


func someFunc(confValue string) error {

    // do stuff

}

您的测试:


func TestSomeFunc(t *testing.T) {

    err := someFunc("test config value")

    // assert things

}


查看完整回答
反对 回复 2023-07-31
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信