gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 01:29:50 26 4
gpt4 key购买 nike

我有一个 Go 应用程序,应用程序在启动时读取环境变量。应用程序使用环境变量的值进行自身配置。

现在,根据环境变量的值之一,应用程序的设置与同一环境变量的其他值不同。

我想在单元测试中测试这两个设置。我还想并行运行这些测试。我可以在一个测试中使用 os.Setenv() 设置 env 变量值,但这也会影响并行运行的另一个测试,该测试试图为同一环境变量设置不同的值。

这种情况下的最佳做法是什么?我们如何设置不影响单元测试的环境变量值。

最佳答案

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

您的代码:

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
}

关于unit-testing - 如何并行运行需要不同环境变量值的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58356031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com