是否有设置 golang 单元测试参数的最佳实践?

Pro*_*ter 5 unit-testing go visual-studio-code

我的单元测试需要远程服务器地址才能启动。服务器地址不固定。

如果我将地址放入 .go 测试源中,则每次运行时都会更改它们。

如果我把它们放在系统环境变量中,在VSCode GUI中更改它是非常不方便的。(我的意思是我将在 VSCode 菜单中开始测试。)

我知道我可以在运行或调试程序之前将环境变量放入 launch.json 中进行设置。但在这里我只想运行单元测试。

有没有什么好的方法可以在不重启VSCode的情况下更改参数呢?

bla*_*ami 14

您可以将以下代码片段添加到 VSCodesettings.json来指定go test运行时的环境变量:

直接定义变量:

"go.testEnvVars": {
  "MY_VAR": "my value"
},
Run Code Online (Sandbox Code Playgroud)

test.env或者使用包含环境变量的专用文件(在我的示例中称为项目工作区的根目录) MY_VAR="my value",其格式为每行一个变量:

"go.testEnvFile": "${workspaceFolder}/test.env",
Run Code Online (Sandbox Code Playgroud)

另请注意,单元测试(顾名思义,它们测试一个代码单元)通常不应依赖于任何外部服务或资源。除了被测试的逻辑之外的所有内容都应该以模拟的形式提供。

  • 如果将项目相关的settings.json放入项目文件夹的.vscode文件夹中,则可以使用项目相关的settings.json - 无需使用全局settings.json (3认同)