我有以下TestMain函数:
func TestMain(m *testing.M) {
db := "[working_db_connection]"
dbInstance, _ := InitializeRepo(db, 2)
runTests := m.Run()
os.Exit(runTests)
}
和以下样本测试
func TestSomeFeature(t *testing.T) {
fmt.Println(dbInstance)
}
函数TestSomeFeature确实运行,但是说dbInstance未定义。为什么这不能访问变量?从示例中,我看到使用此语法访问TestMain中的变量et。
最佳答案
dbInstance
是TestMain
的局部变量,在TestSomeFeature
函数的生命周期中不存在。因此,测试套件告诉您dbInstance
未定义。
将变量定义为TestMain之外的全局变量,然后在TestMain中实例化该变量
var DbInstance MyVariableRepoType
func TestMain(m *testing.M) {
db := "[working_db_connection]"
DbInstance, _ = InitializeRepo(db, 2)
runTests := m.Run()
os.Exit(runTests)
}
关于testing - golang TestMain()函数设置测试无法访问的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42395897/