我在 go 中制作了簡單的應用程序,并嘗試使用 GoLand 的 GUI 工具運行測試。在 test func 附近的 myfile_test.go 文件中,我按下應該開始測試的綠色按鈕。但我收到錯誤消息:“編譯失敗”和控制臺中的消息:# command-line-arguments [command-line-arguments.test]./myfile_test.go:21:11: undefined: MyStruct./myfile_test.go:22:12: undefined: MyFuncName./myfile_test.go:33:12: undefined: AnotherStructCompilation finished with exit code 2其他變體(使用覆蓋率/CPU 配置文件運行測試)也不起作用。GoLand 2020.1 EAP。在舊版本的 GoLand 中也出現了同樣的問題。但從控制臺測試正常啟動:go test -v=== RUN TestMyStruct_MyMethod--- PASS: TestMyStruct_MyMethod (0.00s)PASSok _/home/username/projects/my_project_name 0.002s
3 回答

SMILET
TA貢獻1796條經驗 獲得超4個贊
基本上,您需要在 GoLand 中的“Preferences”->“Go”->“Go Modules”下勾選“Enable Go Modules integration”
然后,Goland 將重新索引您的項目,如果您有一個包含許多模塊的大型項目,這可能需要很長時間。我的花了30分鐘。您可以在 IDE 底部查看重新索引的進度狀態。
測試運行將在重新索引后工作。

哆啦的時光機
TA貢獻1779條經驗 獲得超6個贊
我解決了初始化新 go 模塊和啟用 Go Modules 集成的問題:
1) 在終端中運行go mod init my_module_name
2)點擊“文件->設置”或按Ctrl+Alt+S
3)選中“啟用 Go 模塊集成”并應用按鈕
現在 GoLand 中的所有測試功能都運行良好(包括覆蓋測試等)

翻過高山走不出你
TA貢獻1875條經驗 獲得超3個贊
這里的問題是你指向一個文件。所有其他文件,即使它們在包中,也不會被導入。go build
具有相同的行為,如果您要構建單個文件并且忘記在命令中包含它使用的其他文件。
將測試類型更改為“目錄”,將文件更改為"/project-root-dir"
. 然后,這將在構建期間包含目錄中的所有文件,并應查找所有_test.go
文件以執行測試。
- 3 回答
- 0 關注
- 425 瀏覽
添加回答
舉報
0/150
提交
取消