permissions - 如何在具有文件系统权限的 travis 上运行 golang 测试(如果可能,在 sudo 旁边?)
问题描述
我正在尝试使用 TravisCI 构建我的 golang cli 项目。发现的问题之一是在运行创建文件的测试时,出现权限错误。
但是当尝试使用 sudo 运行测试时,它变为sudo: go: command not found
这是来自 travis 的错误片段:
任何人都可以提供解决方案吗?
笔记:
- 我不想更改我的测试以在代码中使用 sudo,因为以后使用它时,用户应自行决定是否使用 sudo
解决方案
回答我自己的问题
从评论中编译,我尝试了2个选项
第一个是更新当前的工作目录权限,使用chmod 777 .
(是的,我设置了所有,不想真正打扰 travis 特定的行为),但事实证明它不起作用。这次不知道是什么原因,可能动态生成的二进制文件也有权限问题
对我有用的解决方案是读取go
二进制路径,然后以 sudo 重新运行它,如下所示
script:
- GO_EXECUTABLE_PATH=$(which go)
- echo $GO_EXECUTABLE_PATH
- sudo $GO_EXECUTABLE_PATH test ./...
推荐阅读
- python-3.x - 无法将变量添加到 List 的实例
- python - 金字塔和statsmodels fit()和ARIMA()之间的区别?
- javascript - 在 h3 标签内复制文本时,复制到剪贴板不是一个功能
- python - Matplotlib 和 Python:将按键事件连接到绘图循环
- laravel - 在 Laravel 5.5 中显示用户头像 foreach 帖子
- coded-ui-tests - 无法运行与桌面交互的测试
- php - Laravel 5.6 Auth /admin 显示有或没有登录的空白页面
- wordpress - wordpress 上分隔行中的全宽图像(参考附件)
- javascript - 将 JSX 作为字符串变量嵌入到 React JS 中的其他 JSX 代码中
- junit4 - maven surefire-plugin 正在跳过测试