运行子 package 内的用例: go test example/<package name> 或 go test ./<package name>
递归测试当前目录下的所有的 package:go test ./... 或 go test example/...
执行特定的测试用例 go test -v . -test.run 'Fib'
默认不输出 log,-v 输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 执行当前目录下的全部测试用例,不递归子目录中的测试用例
go test .
# 执行当前目录下的全部测试用例,递归子目录中的测试用例
go test ./...
# 执行当前目录下的全部测试用例并显示测试过程中的日志内容,不递归子目录中的测试用例
go test -v .
# 执行当前目录下的全部测试用例并显示测试过程中的日志内容,递归子目录中的测试用例
go test -v ./...
# 执行指定的测试用例
go test -v . -test.run '^TestValid$'
# 测试所有包含 user(不区分大小写) 的测试方法
go test -v -run="(?i)user"
# 测试多个方法,名称用 "|" 分开
go test -v -run="TestGetOrderList|TestNewUserInfo"
// calc.go
package main
funcAdd(a int, b int) int {
return a + b
}
funcMul(a int, b int) int {
return a * b
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// calc_test.go
package main
import"testing"funcTestAdd(t *testing.T) {
if ans :=Add(1, 2); ans !=3 {
t.Errorf("1 + 2 expected be 3, but %d got", ans)
}
if ans :=Add(-10, -20); ans !=-30 {
t.Errorf("-10 + -20 expected be -30, but %d got", ans)
}
}
1
2
3
example/
|--fib.go
|--fib_test.go
1
2
3
4
5
6
7
8
9
10
// fib.go
package main
funcFib(n int) int {
if n ==0|| n ==1 {
return n
}
returnFib(n-2) +Fib(n-1)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// fib_test.go
package main
import"testing"funcTestFib(t *testing.T) {
var (
in = 7 expected = 13 )
actual :=Fib(in)
if actual != expected {
t.Errorf("Fib(%d) = %d; expected %d", in, actual, expected)
}
}