Golang Go语言中记录一个很脑瘫的 Test 在 root 下跑不起来的问题
迫于做 bpf 开发,跑测试需要用 sudo ,然而同一个 ut ,在普通用户下就正常,sudo 执行就一直 hang 着,没有输出也不结束。本来以为遇上了吊诡的 bug ,发现用-x -v 可以打印 debug 日志,然后看了下,root 下没配梯子,导致 hang 在一开始下包的地方不动...
怪不得用英文关键词什么都查不到呢,老外恐怕遇不了这种奇葩 bug 。解决方案也很简单,sudo -E 把环境变量带上就行了。
Golang Go语言中记录一个很脑瘫的 Test 在 root 下跑不起来的问题
更多关于Golang Go语言中记录一个很脑瘫的 Test 在 root 下跑不起来的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
我也加一个碰到过的类似的问题,编译 openwrt 的时候,有些依赖没梯子下不下来,然后用 proxychains ,结果报了一堆错误,细看之下编译脚本中有一些函数会解析编译命令,因为加了一个 proxychains ,导致命令解析出来的顺序不太对,从而编译失败。😅
更多关于Golang Go语言中记录一个很脑瘫的 Test 在 root 下跑不起来的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
遇到这种问题是真的烦
#2 👍学到了,忘了后来咋解决的了,好像设置了系统 proxy
最后说了啊,sudo -E 就起来了
在Golang(Go语言)中遇到测试代码(Test)在根目录下无法运行的问题,通常与测试文件的命名、包结构或测试函数的声明方式有关。以下是一些可能的解决步骤和检查点:
-
测试文件命名:确保你的测试文件名以
_test.go
结尾。例如,如果你的文件名是main.go
,那么测试文件应该命名为main_test.go
。 -
包声明:测试文件应与被测试代码在同一包中。如果
main.go
的包声明为package main
,那么main_test.go
也应该声明为package main
。 -
测试函数声明:测试函数应以
Test
开头,并且接收一个指向testing.T
类型的指针作为参数。例如:func TestExample(t *testing.T) { // 测试代码 }
-
运行测试:在根目录下运行测试时,使用
go test
命令。如果你在根目录的上一级运行go test ./...
,它会递归地运行所有子目录中的测试。 -
权限问题:确保你有足够的权限在根目录下执行测试。虽然这通常不是问题,但在某些受限的环境(如某些操作系统或容器)中可能会遇到。
-
环境变量:检查是否有任何环境变量影响Go工具链的行为,特别是
GOROOT
和GOPATH
。
如果以上步骤都正确无误,但问题依旧存在,请检查具体的错误信息,以便进一步诊断问题。