You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何测试Go语言中非main包的库函数?

如何测试Go语言库模块中的函数

不用必须创建新模块,有几种实用的方式可以测试你的库函数:

1. 在当前库模块内添加临时测试入口文件

直接在库的模块目录下创建一个main.go(或命名为test_runner.go这类明确用途的文件名),内容示例如下:

package main

import (
	"fmt"
	"your/module/path" // 替换成你的库模块路径,也就是go.mod里的module值
)

func main() {
	// 调用你要测试的库函数
	res := yourmodule.YourToolFunc("test input")
	fmt.Println("测试结果:", res)
}

执行命令:

go run main.go

测试完成后,你可以直接删除这个文件,或者给文件名加上下划线前缀(比如_main.go),Go在构建库时会自动忽略这类文件。

2. 使用Go官方的单元测试框架(推荐)

这是Go语言中测试库代码的标准方式,适合长期维护和自动化测试。在库文件同目录下创建xxx_test.go格式的测试文件,示例:

package yourlib // 和你的库包名一致

import "testing"

func TestYourToolFunc(t *testing.T) {
	// 测试用例1
	input := "test input"
	expected := "expected output"
	res := YourToolFunc(input)
	if res != expected {
		t.Errorf("YourToolFunc(%q) = %q, want %q", input, res, expected)
	}

	// 可以添加更多测试用例
}

执行测试命令:

go test # 简单执行测试
go test -v # 查看详细测试过程

3. 在模块内创建cmd子目录存放测试工具

如果需要长期保留测试入口,或者有多个测试场景,可以在模块根目录下创建cmd子目录,比如cmd/testlib,在该目录下放置main.go,结构如下:

yourlib-module/
├── go.mod
├── yourlib.go
└── cmd/
    └── testlib/
        └── main.go

cmd/testlib/main.go的内容和第一种方式类似,执行测试时用:

go run ./cmd/testlib

这种方式不会污染库的核心代码,同时可以把测试工具作为模块的一部分保留。

内容的提问来源于stack exchange,提问作者pida

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:25:26