为了账号安全,请及时绑定邮箱和手机立即绑定

无法生成覆盖

无法生成覆盖

Go
LEATH 2022-04-26 15:27:45
我的测试文件中有类似下面的内容package stringutilimport (    "testing"    "gotest.tools/assert")当我尝试测试它时,我得到了错误$ go test github.com/user/stringutil# github.com/user/stringutilpackage github.com/user/stringutil (test)        imports gotest.tools/assert        imports gotest.tools/v3/assert/cmp: code in directory C:\Users\abc\go\src\gotest.tools\assert\cmp expects import "gotest.tools/assert/cmp"FAIL    github.com/user/stringutil [setup failed]FAIL然后我在导入中添加了“gotest.tools/assert/cmp”。package stringutilimport (    "testing"    "gotest.tools/assert"    "gotest.tools/assert/cmp")当我尝试测试它时,我得到了下一个错误$ go test github.com/user/stringutil# github.com/user/stringutilpackage github.com/user/stringutil (test)        imports gotest.tools/assert        imports gotest.tools/v3/internal/format: code in directory C:\Users\abc\go\src\gotest.tools\internal\format expects import "gotest.tools/internal/format"FAIL    github.com/user/stringutil [setup failed]FAIL然后我在导入中添加了“gotest.tools/internal/format”package stringutilimport (    "testing"    "gotest.tools/assert"    "gotest.tools/assert/cmp"    "gotest.tools/internal/format")现在我在测试时遇到了另一个错误$ go test github.com/user/stringutil# github.com/user/stringutilpackage github.com/user/stringutil (test)        imports gotest.tools/assert        imports gotest.tools/v3/assert/cmp        imports gotest.tools/v3/internal/format        imports gotest.tools/v3/internal/difflib: code in directory C:\Users\abc\go\src\gotest.tools\internal\difflib expects import "gotest.tools/internal/difflib"FAIL    github.com/user/stringutil [setup failed]FAIL然后我在导入中添加了“gotest.tools/internal/difflib”package stringutilimport (    "testing"    "gotest.tools/assert"    "gotest.tools/assert/cmp"    "gotest.tools/internal/format"    "gotest.tools/internal/difflib")如果我不使用 assert 我的测试有效$ go test github.com/user/stringutilok      github.com/user/stringutil      0.435s看起来断言有问题?
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

使用说明

启用 Go 模块 (go1.11+)

获取 gotest.tools/v3

导入“gotest.tools/v3/assert”

因此,gotest.tools/assert您需要导入而不是导入gotest.tools/v3/assert。这将引入最新版本的包(我假设您正在使用模块;这是最新版本的默认设置,除非您在 GOPATH 中工作并且没有 go.mod)。

导入gotest.tools/assert将引入旧的非模块感知版本。这在包含评论的问题中进行了详细讨论

gotest.tools/assert 只是对 v3 版本包的有效导入,该包已经过时了

由于您的评论表明您没有使用模块,因此我又看了一眼。看来上述问题中的评论是不正确的,该项目的主人现在包括对模块的支持。不幸的是,这破坏了它在不支持模块的项目中的使用。您可以获得旧版本(需要使用 git)或在项目中使用模块(我推荐的方法)。

要将旧版本更改为 gotest.tools 文件夹(C:\Users\abc\go\src\gotest.tools在您的情况下)并运行git checkout v2.3.0(2.3.0 可能有效,但您可能需要返回到 2.2.0)。请注意,这意味着您将使用旧版本的软件包。


查看完整回答
反对 回复 2022-04-26
  • 1 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信