por*_*ion 4 testing intellij-idea go goland
我在 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
Run Code Online (Sandbox Code Playgroud)
其他变体(使用覆盖率/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
Run Code Online (Sandbox Code Playgroud)
小智 9
@porfirion 的回答对我有用。
基本上,您需要在 GoLand 中的“首选项”->“Go”->“Go 模块”下勾选“启用 Go 模块集成”
Goland 然后将重新索引您的项目,如果您有一个包含许多模块的大型项目,这可能需要很长时间。我的花了30分钟。您可以在 IDE 底部检查重建索引进度状态。
重新索引后,测试运行将起作用。
我通过初始化新的 go 模块并启用 Go Modules Integration 解决了这个问题:
1)在终端运行 go mod init my_module_name
2)点击“文件->设置”或按Ctrl+Alt+S
现在 GoLand 中的所有测试功能都运行良好(包括覆盖测试等)