go自动化测试、覆盖率

整理自https://liumiaocn.blog.csdn.net/article/details/54922394

自动化测试

go程序测试

在这里插入图片描述

例子

在这里插入图片描述

自动化测试

basicfunc.go

package basicfunc
func GetGrade(score int) string {
	switch {
	case score < 60:
		return "D"
	case score <= 70:
		return "C"
	case score <= 80:
		return "B"
	case score <= 90:
		return "A"
	default:
		return "Undefined"
	}
}

func Add(num1 int, num2 int) int {
	return num1 + num2
}

func_test.go

package basicfunc

import "testing"

// 功能测试:testing.T
func TestBasic(test *testing.T) {
	grade := GetGrade(40)
	if grade != "D" {
		test.Error("Test Case failed.")
	}

}

func TestAddfunc(test *testing.T) {
	sum := Add(1, 1)
	if sum == 2 {
		test.Log("Passed: 1 + 1 == 2 ")
	} else {
		test.Log("Failed: 1 + 1 == 2 ")
	}
}

// 压力测试:testing.B
func BenchmarkAddfunc(bmtest *testing.B) {
	for cnt := 0; cnt < bmtest.N; cnt++ {
		Add(1, 1)
	}
}

如何执行

1.执行go mod init
2. 功能测试:go test
3. 压力测试:go test -bench=.

常用参数

-bench regexp 执行相应的 benchmarks,例如 -bench=.;
-cover 开启测试覆盖率;
-run regexp 只运行 regexp 匹配的函数,例如 -run=Array 那么就执行包含有 Array 开头的函数;
-v 显示测试的详细命令。

执行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

覆盖率

概念

测试覆盖率是通过执行某包的测试用例来确认代码被执行的程度的术语。

统计模式

在这里插入图片描述

执行

go test -cover 得到覆盖率
在这里插入图片描述
可以看到我们现在得到了一个42.9%的覆盖率,这说明42.9%的代码在测试用例执行中被至少执行过一次。

生成HTML

生成前的准备
go test -coverprofile=covprofile 生成covprofile 文件
在这里插入图片描述
生成HTML文件
go tool cover -html=covprofile -o coverage.html 生成HTML文件
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值