文章目录
- 问题描述
- 解决方法
问题描述
基于 Golang 语言,使用 gomonkey 来 mock 函数及方法,在 Mac 环境执行的时候,遇到如下错误:
代码语言:javascript复制panic: permission denied [recovered]
panic: permission denied
显然,执行单测的时候,遇到了权限问题。
解决方法
按下面顺序依次执行即可。
- 下载工具
cd `go env GOPATH`
git clone https://github.com/eisenxp/macos-golink-wrapper.git
- 将 link 重命名为 original_link
mv `go env GOTOOLDIR`/link `go env GOTOOLDIR`/original_link
- copy 第一步下载的工具到 GOTOOLDIR 目录下
cp `go env GOPATH`/macos-golink-wrapper/link `go env GOTOOLDIR`/link
- 授予 link 执行权限
chmod x `go env GOTOOLDIR`/link
在执行上面的命令的时候,我们有可能遇到两个问题,分别为:
- 克隆「
git clone https://github.com/eisenxp/macos-golink-wrapper.git
」项目超时,无法将项目拉取到本地; - 重命名「mv
go env GOTOOLDIR
/linkgo env GOTOOLDIR
/original_link」遇到无法授权的问题。
对于第一个问题,我们可以直接去 GitHub 将该项目手动 Download 下来,然后手动复制到「cd go env GOPATH
」目录;对于第二个问题,也是手动将遇到的没有权限的目录的权限进行修改。
参考内容:
- macos-golink-wrapper
- golang使用gomonkey和monkey来mock方法或者函数时报panic: permission denied [recovered]