在golang中设置测试文件中的变量

All*_*len 5 go

我正在尝试从我的单元测试文件中设置一个变量

main_test.go

var testingMode bool = true
Run Code Online (Sandbox Code Playgroud)

main.go

if testingMode == true {
  //use test database
} else {
  //use regular database
}
Run Code Online (Sandbox Code Playgroud)

如果我运行"go test",这样可以正常工作.如果我"go build",golang会抱怨没有定义testingMode(因为测试不是程序的一部分,所以应该是这种情况).

但似乎如果我在main.go中设置全局变量,我无法在main_test中设置它.

关于这个的正确方法是什么?

Pie*_*tti 10

试试这个:

将您的变量定义为全局变量main.go:

var testingMode bool
Run Code Online (Sandbox Code Playgroud)

然后将其设置为true您的测试文件main_test.go:

func init() {
    testingMode = true
}
Run Code Online (Sandbox Code Playgroud)