积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《无法从 GoLand (Intellij Idea) 运行 go 测试:编译失败》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~
问题内容我在 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: anotherstruct
compilation finished with exit code 2
其他变体(使用覆盖率/cpu 配置文件运行测试)也不起作用。 goland 2020.1 eap。旧版本的 goland 中也出现了同样的问题。
但是从控制台的测试正常开始:
go test -v
=== RUN TestMyStruct_MyMethod
--- PASS: TestMyStruct_MyMethod (0.00s)
PASS
ok _/home/username/projects/my_project_name 0.002s
解决方案
@porfirion 的答案对我有用。
基本上,您需要在 GoLand 中的“首选项”->“Go”->“Go 模块”下勾选“启用 Go 模块集成”
然后,Goland 将重新索引您的项目,如果您有一个包含许多模块的大型项目,这可能需要很长时间。我的花了30分钟。您可以在 IDE 底部检查重新索引进度状态。
测试运行将在重新索引后运行。
我通过初始化新的 go 模块并启用 Go 模块集成解决了问题:
1) 在终端中运行 go mod init my_module_name
2) 单击“文件 -> 设置”或按 Ctrl+Alt+S
3) 选中“启用 Go 模块集成”并应用按钮
现在 GoLand 中的所有测试功能都可以正常运行(包括覆盖率测试等)
今天关于《无法从 GoLand (Intellij Idea) 运行 go 测试:编译失败》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!