VSCode中Go代码调试配置问题及单元测试单独运行方法咨询
VS Code调试Go单元测试的问题解决方案
刚好我之前也踩过VS Code调试Go测试的这些坑,给你一步步解决:
一、为什么修改program: "${file}"没效果?
当mode设为test时,program字段的作用是指定测试包的根路径,而不是单个文件路径——Go的测试体系是基于包的,所以直接填单个文件路径调试器根本不认。想要只跑当前打开的测试文件,你不用改program,而是加个testFile字段:
{ "name": "Debug Current Test File", "type": "go", "request": "launch", "mode": "test", "program": "${relativeFileDirname}", "testFile": "${file}" }
这个配置会精准定位到你当前打开的.go文件,只运行里面的所有测试用例,不会跑整个目录的其他测试。
二、怎么单独调试某一个单元测试函数?
如果想更精准,只调试某一个特定的测试函数,就在上面的配置基础上再加个args字段,用-run参数指定测试函数名(正则匹配更稳妥):
{ "name": "Debug Single Test", "type": "go", "request": "launch", "mode": "test", "program": "${relativeFileDirname}", "testFile": "${file}", "args": ["-run", "^TestGetUserInfo$"] }
把TestGetUserInfo换成你要调试的函数名,^和$是为了避免匹配到其他前缀相同的测试函数,确保只跑你指定的那一个。
另外还有个更省事的方法:VS Code左侧活动栏有个“测试”面板(就是那个带烧杯图标的),里面会列出所有测试用例,找到你要调试的单个函数,右键点“调试测试”,直接就能启动调试,连launch.json都不用改~
内容的提问来源于stack exchange,提问作者Eden Berdugo
相关产品推荐
相关产品推荐

