go 自动化测试
// a + b
func calcTriangle( a,b int) int {
var c int
c = int(math.Sqrt(float64(a*a + b*b)))
return c
}
package main
import "testing"
// go 自动识别,通过t 打印测试错误信息
func TestTriangle( t *testing.T){
tests :=[]struct{a,b,c int}{
{3,4,5},
{5,12,13},
{8,15,17},
{12,35,37},
}
for _ , tt := range tests {
if actual := calcTriangle(tt.a,tt.b); actual != tt.c{
t.Errorf("calcTriangle(%d, %d) ; got %d; expected %d",tt.a,tt.b,actual,tt.c)
}
}
}
terminal 下测试
go test . //会执行当前目录下所有测试用例
如: go test .
ok learngo/basic 0.742s
测试代码覆盖率
命令行执行 ,生成c.out 文件
go test -coverprofile=c.out
以html 方式查询 代码覆盖率报告文件
go tool cover -html=c.out