我的測試文件中有類似下面的內容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)。請注意,這意味著您將使用舊版本的軟件包。
- 1 回答
- 0 關注
- 178 瀏覽
添加回答
舉報
0/150
提交
取消