右上角绿色三角形按钮亮起且无波浪线,说明goland已正确识别sdk、启用go modules并解析依赖;需确保goroot指向根目录(如c:\go)、重启ide、删除go.work、配置代理为https://goproxy.cn,direct,并验证_test.go文件命名与函数签名规范。

右上角运行按钮是否亮起
这是最直接的判断依据。新建一个 main.go 文件,写入最简代码:
package main
import "fmt"
func main() {
fmt.Println("ok")
}
如果右上角绿色三角形按钮是可点击状态(不灰),且没有红色波浪线标出 fmt 或 main,说明 GoLand 已识别 SDK、模块模式启用、依赖路径解析正常。
常见卡点:
-
GOROOT指向了C:\Go\bin这类子目录,而非C:\Go根目录(macOS 是/usr/local/go)——必须包含src、pkg、bin三个文件夹 - 没重启 GoLand:Settings 中改完
GOROOT后仅点 Apply 不生效,必须完全退出再启动 - 项目根目录下存在
go.work文件,会强制进入多模块工作区模式,干扰单模块项目初始化
go mod tidy 能否在 IDE 内执行成功
在项目根目录打开 Terminal(Alt+F12),运行 go mod tidy。成功标志是快速输出无报错,且生成 go.mod 和 go.sum。
失败典型现象:
- 卡在
Fetching modules...:说明GOPROXY没生效,检查 Settings → Go → Go Modules → Proxy 是否填为https://goproxy.cn,direct(注意逗号后不能有空格,且必须含direct) - 报错
no required module provides package:当前目录不是模块根目录,先执行go mod init example.com/myapp - 提示
GO111MODULE=auto:说明模块未强制启用,在 Terminal 中执行go env -w GO111MODULE=on,然后重启 GoLand
测试函数能否被识别并运行
新建 hello_test.go,内容为:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
package main
import "testing"
func TestHello(t *testing.T) {
t.Log("test ok")
}
如果函数名左侧出现绿色三角形“运行”图标,点击能执行并通过,说明测试框架、gopls 语义分析、构建路径全部就绪。
容易忽略的细节:
- 文件名必须以
_test.go结尾,hello.test.go或test_hello.go都无效 - 函数名必须是
TestXxx格式(首字母大写 + 大驼峰),testHello或TESTHELLO不会被识别 -
t参数类型必须是*testing.T,不能是testing.T或其他类型
gopls 是否正常加载
GoLand 2025 默认使用 gopls 提供语言服务。打开命令面板(Ctrl+Shift+P),输入 “Go: Locate Configured Tools”,查看 gopls 路径和环境变量是否包含 GOPROXY 和 GO111MODULE=on。
若状态栏一直显示 “Loading…” 或跳转/补全失效,大概率是 gopls 启动失败,原因常为:
-
gopls未安装:终端执行go install golang.org/x/tools/gopls@latest - IDE 没继承代理配置:Settings → Go → Go Modules → Proxy 填了,但没点右下角 “Reload project” 触发重载
- 项目里有语法错误导致
gopls卡死,先清掉所有编译错误再试
真正难排查的是环境变量透传问题:GoLand 不读 shell 配置,go env 在终端里正确,不代表 IDE 进程里也一样。所有代理、模块开关都得在 Settings 里显式配,而不是只靠系统变量。










