我在 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 关注
- 342 浏览
添加回答
举报
0/150
提交
取消