$GOPATH/src/... 和 vendor/... 版本不同
$GOPATH/src/... and vendor/... versions are different
我的项目使用 Go 1.8,依赖于 github.com/stretchr/testify
。我使用 go get -u github.com/stretchr/testify
检索了最新版本,$GOPATH/src
中的版本似乎是正确的。
我在Gopkg.toml
中添加了最新版本号作为约束:
[[constraint]]
name = "github.com/stretchr/testify"
version = "1.1.4"
我然后 运行 dep ensure -update
然后 dep status
更新 vendor
目录(dep status
的输出):
github.com/stretchr/testify ^1.1.4 v1.1.4 69483b4 69483b4 1
$GOPATH/src
中的版本在文件 github.com/stretchr/testify/assert/assertions.go
中包含函数 PanicsWithValue
:
func Panics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {
// ...
}
func PanicsWithValue(t TestingT, expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool {
// ...
}
func NotPanics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {
// ...
}
但在 vendor
中的版本中缺少该功能:
func Panics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {
// ...
}
func NotPanics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {
// ...
}
我做错了什么?我想在我的测试中使用函数 PanicsWithValue
。我什至尝试删除整个 vendor
目录并重建它。
通过将版本固定为 v1.1.4,您明确告诉 dep
使用不包含您想要的功能的版本(在 GitHub 上查看 testify 包的历史记录- v1.1.4 来自去年 9 月,PanicsWithValue
是今年 6 月添加的)。如果您取消固定版本 (version = "*"
),它应该使用包含 PanicsWithValue
.
的 master@HEAD
我的项目使用 Go 1.8,依赖于 github.com/stretchr/testify
。我使用 go get -u github.com/stretchr/testify
检索了最新版本,$GOPATH/src
中的版本似乎是正确的。
我在Gopkg.toml
中添加了最新版本号作为约束:
[[constraint]]
name = "github.com/stretchr/testify"
version = "1.1.4"
我然后 运行 dep ensure -update
然后 dep status
更新 vendor
目录(dep status
的输出):
github.com/stretchr/testify ^1.1.4 v1.1.4 69483b4 69483b4 1
$GOPATH/src
中的版本在文件 github.com/stretchr/testify/assert/assertions.go
中包含函数 PanicsWithValue
:
func Panics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {
// ...
}
func PanicsWithValue(t TestingT, expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool {
// ...
}
func NotPanics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {
// ...
}
但在 vendor
中的版本中缺少该功能:
func Panics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {
// ...
}
func NotPanics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {
// ...
}
我做错了什么?我想在我的测试中使用函数 PanicsWithValue
。我什至尝试删除整个 vendor
目录并重建它。
通过将版本固定为 v1.1.4,您明确告诉 dep
使用不包含您想要的功能的版本(在 GitHub 上查看 testify 包的历史记录- v1.1.4 来自去年 9 月,PanicsWithValue
是今年 6 月添加的)。如果您取消固定版本 (version = "*"
),它应该使用包含 PanicsWithValue
.