如何使用文件系统权限 运行 golang 在 travis 上进行测试(如果可能的话,除了 sudo 之外?)

How to run golang test on travis with filesystem permission (beside sudo, if possible?)

我正在尝试使用 TravisCI 构建我的 golang cli 项目。发现的问题之一是 运行ning 测试创建文件时,出现权限错误。

但是当尝试 运行 sudo 测试时,它变成了 sudo: go: command not found

这是来自 travis 的错误片段:

任何人都可以提供解决方案吗?

备注:

  1. 我不想更改我的测试以在代码中使用 sudo,因为以后使用时用户应该自己决定是否使用 sudo

回答我自己的问题

根据评论编译,我尝试了 2 个选项

首先是用 chmod 777 . 更新当前工作目录权限(是的,我设置了所有,不想真正打扰 travis 的特定行为),但事实证明它不起作用。这次不知道是什么原因,可能是动态生成的binary也有权限问题

对我有用的解决方案是读取 go 二进制路径,然后将其重新运行 为 sudo,如下所示

script: 
  - GO_EXECUTABLE_PATH=$(which go)
  - echo $GO_EXECUTABLE_PATH
  - sudo $GO_EXECUTABLE_PATH test ./...