vscode 中 Go test 添加flag

Go test 时,单元测试经常会有读取配置文件的情况,vscode 单元测试时,实际执行的目录是在当前文件夹下,与你实际使用时的相对配置文件目录不同,在 vscode 配置中可以添加 test flag 参数可以处理这个问题

setting.json 中添加配置

1
2
3
{
  "go.testFlags": ["-args", "-c", "../config.json"]
}

args 可以原封不动的把参数传递给二进制文件使用 -c 是我的文件地址的 flag

注意这个 args 要放到 test 识别的 flag 之后

例如

1
2
3
4
{
  "go.testFlags": ["-v", "-args", "-c", "../config.json"]
  // 这样就保留了 -test.v 的flag
}

如果

1
2
3
4
{
  "go.testFlags": ["-args", "-c", "../config.json", "-v"]
  // 这样就会把 -v 传递到二进制文件中,test 本身就识别不到 v 的flag 了
}

参考

https://skyao.io/learning-go/test/gotesting/flag.html