Golang中的覆盖率测试

本文介绍了Golang中如何使用`go test`进行覆盖率测试,包括白盒测试和黑盒测试的覆盖率统计。通过在单元测试文件中定义特定函数,并利用flag解析参数,可以在运行主程序时获取覆盖率报告。
摘要由CSDN通过智能技术生成

Golang中的覆盖率测试

golang中提供了不少工具链,可以使用它们方便的进行单元测试、分析性能瓶颈,提供运行时信息等,总而言之是非常有用的。

go test这个工具大家用的应该比较多,之前我使用也大多是用来做单元测试的,go中做单元测试非常的方便,然而我忽视了覆盖率测试。

单元测试覆盖了多少代码呢?golang的go test工具其实还支持显示覆盖率,最简单的用法就是执行

go test -c -covermode=count -coverpkg ./...

来编译一个后缀为.test的可执行文件,执行后,它会执行所有的单元测试代码,然后输出覆盖率的报告。

这其实是统计单元测试的覆盖率,也就是白盒测试的覆盖率。

然而我们这里的功能测试告诉我,这个还支持黑盒测试的覆盖率统计,我那时候还楞了一下,想了想不大可能吧。于是测试给我发了下面这个文章,我自己读了下,真是大脑洞,真想的出来。

文章

按着这份文章,就是在某个单元测试文件中,定义一个函数,当某个flag被提供的时候,执行main函数来运行主循环。

package main

import (
    "flag"
    "testing"

    "github.com/cihub/seelog"
)

var systemTest *bool
var testConfigPath *string
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值