如何在Visual Studio Code中修改Go测试默认超时时间?
Go测试默认超时在VS Code中不生效的解决办法
我尝试通过Visual Studio Code的settings.json修改Go测试的默认超时时间,当前的go.testFlags配置如下:
"go.testFlags": [ "-count=1", "1", "-v", "-timeout 30m" ],
但在VS Code中运行测试时,超时时间仍为默认的30秒。已知命令行执行go test -timeout 30m可以正常生效,请问如何在VS Code中覆盖默认超时设置?
解决步骤
- 移除配置中无效的
"1"项,这个多余参数会干扰测试命令的参数解析 - 将
"-timeout 30m"拆分为两个独立的数组元素:"-timeout"和"30m"——VS Code的Go插件会把数组内每个元素作为独立命令行参数传给go test,合并成单个元素会被识别为无效参数
修正后的正确配置:
"go.testFlags": [ "-count=1", "-v", "-timeout", "30m" ]
原理说明
Go命令行参数中,带值的选项(比如-timeout)需要将参数名和对应值拆分为两个独立项传递。之前把-timeout 30m写在同一个字符串里,插件会将其作为完整参数传给go test,等同于执行go test "-timeout 30m",这会被识别为错误参数,导致超时设置不生效。
内容的提问来源于stack exchange,提问作者Milan Mihajlović
相关产品推荐
相关产品推荐

