Start
go mod
go mod init
go mod init [module-path]
go mod init命令在当前目录中初始化并写入一个新的go.mod文件。
[module-path]:* 标识模块并作为模块内包导入路径前缀的路径。例如,
"github.com/jasper0507/net"。
go mod tidy
-
go mod tidy确保 go.mod 文件与模块中的源代码匹配。 -
它添加构建当前模块的包和依赖项所需的任何缺失模块依赖项,并删除对不提供任何相关包的模块的依赖项。
-
它还向 go.sum 添加任何缺失条目并删除不必要的条目。
go test
go test # 当前包
go test -v # 详细列出每个测试
go test ./... # 全项目,提交前必跑
go test -run TestHelloName # 只跑匹配的(正则)
- 文件名
xxx_test.go,包名和被测代码相同(同包才能直接调用,不用 import) - 函数名
func TestXxx(t *testing.T),Test前缀是唯一要求,工具不做任何“函数名→被测函数”的映射,测什么全看你在函数体里手写调用
package greetings
import "testing"
func TestHelloName(t *testing.T) {
msg, err := Hello("Gladys")
if err != nil || msg == "" {
t.Errorf("Hello(...) = %q, %v", msg, err)
}
}