很多人在 Debian 上第一次接触 Go 测试时,卡住的往往不是语法,而是环境变量要不要配、测试文件怎么命名、`go test` 跑通后该看什么输出。下面按“环境准备、示例编写、结果判断”三步展开,把最基础的一套流程走完整,读完你可以直接照着命令操作,并判断每一步是否已经生效。
先确认 Debian 已安装 Go
在开始写测试前,先确认系统里已经有可用的 Go 环境。如果还没安装,可以直接执行下面两条命令:
sudo apt update
sudo apt install golang-go
安装完成后,用 go version 检查是否可用。只要终端能正常输出版本信息,就说明 Go 已经装好,后续可以继续进行测试相关操作。
配置 GOROOT、GOPATH 和 PATH
在这套流程里,需要关注两个常见变量:GOROOT 和 GOPATH。前者是 Go 的安装目录,后者通常作为个人工作空间使用。把它们写入 ~/.profile 后,再刷新当前 shell:
echo "export GOROOT=/usr/lib/go" >> ~/.profile
echo "export GOPATH=$HOME/go" >> ~/.profile
echo "export PATH=$PATH:$GOROOT/bin:$GOPATH/bin" >> ~/.profile
source ~/.profile
如果你之前安装过其他版本的 Go,或者 Go 不在默认目录下,这一步要先核对实际路径,再决定是否直接使用上面的值。配置完成后,可以执行 go env 查看环境变量是否已经生效。
创建一个最小 Go 项目目录
测试不需要复杂工程结构,先准备一个最小目录即可。比如新建一个名为 my_project 的项目目录:
mkdir my_project
cd my_project
后面的示例代码和测试文件都放在这个目录中,便于直接执行 go test 验证结果。
编写示例代码与对应测试
示例业务代码:main.go
先写一个最简单的函数,用来演示 Go 的单元测试是怎么工作的。下面的 main.go 中定义了一个 add 函数:
package main
import "fmt"
func add(a int, b int) int {
return a + b
}
func main() {
fmt.Println("Hello, World!")
}
测试文件写法:main_test.go
接着为 add 编写测试。这里有两个关键规则不能错:测试文件名必须以 _test.go 结尾,测试函数名必须以 Test 开头,并接收 *testing.T 参数。
创建 main_test.go:
package main
import "testing"
func TestAdd(t *testing.T) {
result := add(2, 3)
if result != 5 {
t.Errorf("Expected 5, but got %d", result)
}
}
这个例子只覆盖了最基本的加法场景,但已经足够说明 Go 测试的基本结构:调用目标函数,比较结果,不符合预期时通过 t.Errorf 报错。实际项目里,你可以继续补充更多输入组合和边界条件。
执行 go test 并判断结果
代码和测试文件准备好之后,直接在项目目录中运行:

go test
如果测试通过,终端通常会输出类似内容:
PASS
ok my_project 0.001s
PASS 说明测试已成功通过,后面的 ok、项目名和耗时则表示这个包已经完成测试执行。如果测试失败,Go 会直接打印具体错误信息,包括期望值与实际值的差异,便于你回到测试函数或业务函数中定位问题。
这套基础流程里最值得记住的点
Debian 下运行 Go 测试,核心其实只有几件事:先让 go 命令可用,再确认环境变量设置正确,随后按规则编写 _test.go 文件,最后通过 go test 执行验证。
即使后续项目变成多个包、多个测试文件,这个基本逻辑也不会变。原文里提到的基准测试和示例测试,也是基于同一套 Go 测试框架继续扩展出来的能力,适合在完成入门后再往下深入。













