golang模块名称更改导致本地测试失败
我有别人的密码。其模块名称的格式如下:golang模块名称更改导致本地测试失败,go,github,go-modules,Go,Github,Go Modules,我有别人的密码。其模块名称的格式如下: module github.com/foo/bar/v3 我在本地做了一些更改,并将本地go.mod更新为v4,而不是v3,但这现在会导致本地运行测试失败(见下文,我已将输出泛化) 注意:此时的go.sum为空 我不知道为什么它试图定位软件包的实际v3版本,从而更新go.sum以包含它 我可以从测试文件中看到,这个包使用了不同的包名(例如,package foo_test),因此在编写测试代码时,它不依赖于导出的数据结构。也许这就是为什么会发生这种情况?
module github.com/foo/bar/v3
我在本地做了一些更改,并将本地go.mod
更新为v4
,而不是v3
,但这现在会导致本地运行测试失败(见下文,我已将输出泛化)
注意:此时的go.sum
为空
我不知道为什么它试图定位软件包的实际v3版本,从而更新go.sum以包含它
我可以从测试文件中看到,这个包使用了不同的包名(例如,package foo_test
),因此在编写测试代码时,它不依赖于导出的数据结构。也许这就是为什么会发生这种情况?它查看对x.Y
的引用,然后在github中查找x
但是当我在go.mod文件中使用v3引用时,我不确定为什么测试可以正常运行
当你在一个分叉项目中工作时,你对这里发生的事情有什么想法吗?正确的过程应该是什么
谢谢。如果您在
go.mod
文件中更改了模块
名称,您必须用更新的模块
名称替换所有导入
路径
当您将模块github.com/foo/bar/v3
替换为github.com/foo/bar/v4
时,您必须在整个项目中查找并替换github.com/foo/bar/v3
的所有引用
那么您的$go test-v
应该可以正常运行。您更改了模块名称,是否也更改了所有相关的导入语句?@JimB OMG!我真是个倒霉蛋
$ go test -v
go: finding module for package github.com/foo/bar/v3
go: found github.com/foo/bar/v3 in github.com/foo/bar/v3 v3.0.0
# github.com/foo/bar/v4_test [github.com/foo/bar/v4.test]
./some_test.go:232:19: x.Y undefined (type *package.Example has no field or method Y)
FAIL github.com/foo/bar/v4 [build failed]