gpt4 book ai didi

unit-testing - 执行 Go 测试下划线 (_) 代替正确的路径

转载 作者:IT王子 更新时间:2023-10-29 01:42:35 24 4
gpt4 key购买 nike

在此先感谢您的帮助。

在我的 Mac 上,当我执行 go test ./... 时,输出中输出了正确的“路径”:

ok      github.com/cnuss/server             0.008s
ok github.com/cnuss/server/database 0.008s
? github.com/cnuss/server/handlers [no test files]
ok github.com/cnuss/server/stats 0.014s

但是,当我在 Ubuntu 14.04 Trusty 容器中构建时,路径已被替换为“_”(下划线):

ok      _/tmp/cnuss/server          0.003s
ok _/tmp/cnuss/server/database 0.003s
? _/tmp/cnuss/server/handlers [no test files]
ok _/tmp/cnuss/server/stats 0.008s

路径的变化也反射(reflect)在 -coverprofile 输出文件中,这反过来会影响我正在使用的一些覆盖工具。

那么问题来了,是什么影响了执行go test时解析的路径?我的 Mac Book 上的行为是正确的行为。

最佳答案

您可能没有在您的 Linux 环境中设置 GOPATH

如果我在当前目录中创建一个文件src/foo/foo.go,内容为package foo,我可以看到不同之处:

$ unset GOPATH
$ go test ./src/foo
? _/home/james/.../src/foo [no test files]
$ export GOPATH=`pwd`
$ go test ./src/foo
? foo [no test files]

没有 GOPATH 设置(或 GOPATH 之外的包),它的行为就好像这是一个相对导入。

关于unit-testing - 执行 Go 测试下划线 (_) 代替正确的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31664129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com