|  
 发现一个自动生成测试用例的工具gotests。 gotestshttps://github.com/cweill/gotests
 下载 go get -u github.com/cweill/gotests/...
 举个栗子:add.go
 package main
func Add(a int, b int) int {
	return a + b
}
 同目录下执行 gotests -all -w ./add.go
 同目录自动生成 add_test.go文件 package main
import "testing"
func TestAdd(t *testing.T) {
	type args struct {
		a int
		b int
	}
	tests := []struct {
		name string
		args args
		want int
	}{
		
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if got := Add(tt.args.a, tt.args.b); got != tt.want {
				t.Errorf("Add() = %v, want %v", got, tt.want)
			}
		})
	}
}
 填充用例数据: package main
import "testing"
func TestAdd(t *testing.T) {
	type args struct {
		a int
		b int
	}
	tests := []struct {
		name string
		args args
		want int
	}{
		
		{
			"a=3,b=1",
			args{3, 1},
			4,
		},
		{
			"a=3,b=-1",
			args{3, -1},
			4,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if got := Add(tt.args.a, tt.args.b); got != tt.want {
				t.Errorf("Add() = %v, want %v", got, tt.want)
			}
		})
	}
}
 完成。接下来执行go test .就可以跑用例啦 其他参数说明:  
 $ gotests [options] PATH …-all generate tests for all functions and methods
 -excl regexp. generate tests for functions and methods that don’t match. Takes precedence over -only, -exported, and -all-exported generate tests for exported functions and methods. Takes precedence over -only and -all
 -i print test inputs in error messages
 -only regexp. generate tests for functions and methods that match only.Takes precedence over -all
 -nosubtests disable subtest generation when >= Go 1.7
 -parallel enable parallel subtest generation when >= Go 1.7.
 -w write output to (test) files instead of stdout
 -template_dir Path to a directory containing custom test
 code templates. Takes precedence over -template. This can also be set via environment variable GOTESTS_TEMPLATE_DIR
 -template Specify custom test code templates, e.g. testify. This can also be set via environment variable GOTESTS_TEMPLATE
 -template_params_file read external parameters to template by json
 with file
 -template_params read external parameters to template by json
 with stdin
 |