当前位置:网站首页>vscode打造golang开发环境以及golang的debug单元测试
vscode打造golang开发环境以及golang的debug单元测试
2022-07-27 05:12:00 【铁柱同学】
一.前言
vscode使用的顺手了,真的很难再换到沉重的ide去。但是vscode的debug确实比不过老牌ide自带的,因此只能靠咱们自己去安装了。。
二. 正文
1.vscode的扩展
(1)搜索扩展go,安装
(2)ctrl_cammand+P ,输入go:install,翻墙下载插件
(3)如果设置了go mod方式,那么vscode一次只能打开一个项目文件夹。不然会报错:
could not import xx $GOROOT
could not import xx $GOPATH
(4)复制忽略$符号问题:
打开设置,搜索wordSeparators,去掉正则匹配中的$
(5)查看每行代码的git提交人,提交记录
安装扩展:git history和 gitLens
(6)vscode页面预览以及打开多个窗口
1)打开设置,搜索Enable PreView,去掉勾选
2)settings新增设置:"workbench.editor.showTabs":true
(7) vscode调试go代码 : 安装delve
参考:https://www.jianshu.com/p/d8e09faf498c
(8)理解goroot,gopath以及go mod
参考:https://blog.csdn.net/zkyapple/article/details/112108283
(9)vscode收缩文件中所有代码,打开收缩
折叠代码块快捷键
command + k + 0 #长按command
展开代码块快捷键
command + k + j #长按command
(10)vscode关闭go的自动格式化代码
(1)打开设置,搜索: format on save
(2)找到go部分,打开setting,会自动配置一些字段,全部设置为false即可
2.vscode的单元测试
(1) 找到要调用的方法文件同级目录,比如要调用的文件是xxx.go
(2)新建测试文件xxx_test.go,保持package一致.且方法名需要Test开头
(3)主要用到golang的testing包。伪代码如下
package xx
run test | debug test
func Testxx(t *testing.T) {
//初始化配置的代码。从main.go中复制即可,保证项目可以加载到配置,比如链接mysql等
//自己构造参数,调用方法即可
err : = xxxx(自己构造的参数)
}
(4)此时我们鼠标点击方法名上面的run test即可。
(5)run test的时候无法fmt打印?
"go.testFlags": ["-v"]
设置加上之后,我们的format等打印就会出来了
3 .vscode的debug
(1)首先要知道自己的cpu架构,目前mac主要分为amd和arm的。
博主是m1芯片,也就是arm的,因此要安装arm 版本的golang。
(2)golang 版本大于1.6 (貌似之前的版本debug有点问题)
(3)安装dlv
go get -u github.com/go-delve/delve/cmd/dlv
(4) 点击方法名上面的 debug test ,会要求创建launch.json,同意即可。
主要要选择go。使用vscode默认生成的json即可
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${fileDirname}"
}
]
}
(5) 打断点,执行debug test
(6) 报错信息
报错:could not launch process: can not run under Rosetta, check that the installed build of
Go is right for your CPU architecture Process exiting with code: 1
方案:
1.下载golang 的arm ,且版本要大于1.6
2.重新安装dlv (错误原因就在于,使用的是之前老版本的dlv,重新下载即可)
go get -u github.com/go-delve/delve/cmd/dlv
基本上按照这些步骤执行下来就可以愉快的使用vscode的debug功能了。不能不说真的强无敌,每一步的变量值都能显示出来,调试神器啊。不禁想起当年靠打印调试程序的日子,真特么青涩。
end
边栏推荐
- 「PHP基础知识」PHP语句和语句块
- Sequel Pro下载及使用方法
- 刷脸商业逻辑重大改变商户争抢烽烟再起
- 使用Docker部署Redis进行高可用主从复制
- The NFT market pattern has not changed. Can okaleido set off a new round of waves?
- Rating and inquiry details of futures companies
- jenkins构建镜像自动化部署
- NFT new opportunity, multimedia NFT aggregation platform okaleido will be launched soon
- 亚马逊测评自养号,如何进行系统性的学习?
- 一文读懂Elephant Swap的LaaS方案的优势之处
猜你喜欢

Fortex方达发布电子交易生态体系 与客户共享共赢

Page configuration

期货公司开户的具体事项

NFT new opportunity, multimedia NFT aggregation platform okaleido will be launched soon

你连简单的功能测试都做不好,你拿什么来跟我谈涨薪?

NFT新范式,OKALEIDO创新NFT聚合交易生态

期货开户怎么选择好的期货公司 ?

When opening futures accounts, you should discuss the policy in detail with the customer manager

Dimitra and ocean protocol interpret the secrets behind agricultural data

我想不通,MySQL 为什么使用 B+ 树来作索引?
随机推荐
Fortex Fangda releases the electronic trading ecosystem to share and win-win with customers
我想不通,MySQL 为什么使用 B+ 树来作索引?
jenkins构建镜像自动化部署
Jenkins build image automatic deployment
未来刷脸支付是能够占据市场很多的份额
2022/7/26 考试总结
Es time query error - "caused_by": {"type": "illegal_argument_exception", "reason": "failed to parse date field
What are the traversal methods of arrays in JS
选择国企背景的期货公司开户
Read and understand the advantages of the LAAS scheme of elephant swap
期货公司的评级和查询详情
软件测试常见面试题
哪个期货公司手续费低高交返?
Arguments class array in JS
dbswitch数据迁移数据增量时如何不覆盖目标源数据
使用Docker部署Redis进行高可用主从复制
选择正规的资质好的期货公司开户
「PHP基础知识」PHP中实现数学运算
怎么开立普通商品期货账户
2022-07-26 第四小组 抽象类、接口