go测试跨包代码覆盖率
Golang虽然只是一门编程语言,但也为我们提供了不少工具,其中测试工具是最常用的,大概
前提概要
以前看书,只说了用什么工具去做覆盖率,和基本的使用,当时看了也没想太多。后面真正做项目了,老大要求比较规范,每行代码都要跑过,就想到了覆盖率测试工具,但用的时候才发现,按书上的步骤来做,只能测试当前包中的代码,其他包的代码覆盖率没有。
解决方案
在查阅了一些问答以后,找到了办法,原来Golang也是有提供的。
就是使用 “-coverpkg”,具体我们用例子讲解
Demo
项目结构如下

代码如下
main.go
package gotest import (
"gotest/q"
) func main() {
q.Print()
}
q.go
package q import (
"fmt"
) var Q []string func init() {
fmt.Println("q init")
Q = append(Q, "q init")
} func Print() {
fmt.Println("q Print")
}
go_test.go
package gotest import (
"testing"
) func TestMain(t *testing.T) {
main()
}
我想测试main函数,而main函数调用了q.go的代码,直接用下面的命令只能测到当前包的。
go test -coverprofile="c.out"
go tool cover -html="c.out"

当使用 "-coverpkg"时,就能出现我想要的结果了。
go test -coverprofile="c.out" -coverpkg=".,./q"
go tool cover -html="c.out"


我们也可以用 "..." 表示所有引用到的包,这就比较大了,把标准库都会算进来。
go test -coverprofile="c.out" -coverpkg="..."
go tool cover -html="c.out"

注意
很多书上的教程运行环境都是Linux的,命令的参数值没有引号包裹,如:
go test -coverprofile=c.out
这样在Windows下是会报错的,所以最好用引号包裹起来,这样兼容性较好。
go测试跨包代码覆盖率的更多相关文章
- asp.net core 系列之允许跨域访问2之测试跨域(Enable Cross-Origin Requests:CORS)
这一节主要讲如何测试跨域问题 你可以直接在官网下载示例代码,也可以自己写,我这里直接使用官网样例进行演示 样例代码下载: Cors 一.提供服务方,这里使用的是API 1.创建一个API项目.或者直接 ...
- 安全测试 - 抓包工具BurpSuite
Brup SuiteBurpSuite是用于攻击web应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程.所有的工具都共享一个能处理并显示HTTP消息,持久 ...
- web安全测试---跨站点脚本测试
1.1 跨站脚本测试 1.1.1 GET方式跨站脚本测试 编号 SEC_Web_XSS_01 测试用例名称 GET方式跨站脚本测试 测试目的 由于跨站脚本会导致会话被劫持.敏感 ...
- angular8 配置 测试环境打包指令 生成测试环境包指令
1.angular.json 文件中在architect 下添加 buildTest指令 距离位置 projects => (你的项目名称) => architect 下和 build 指 ...
- python基础语法13 内置模块 subprocess,re模块,logging日志记录模块,防止导入模块时自动执行测试功能,包的理论
subprocess模块: - 可以通过python代码给操作系统终端发送命令, 并且可以返回结果. sub: 子 process: 进程 import subprocess while Tru ...
- CSIC_716_20191119【常用模块的用法 subprocess、re、logging、防止自动测试、包的理论】
subprocess模块 可以通过python代码给操作系统终端发送命令,并可以得到返回结果. import subprocess str = input('>>>请输入命令') # ...
- Kali渗透测试2-抓包/DNS工具
转载请注明出处. TCPDUMP:命令行网络抓包工具tcpdump -h tcpdump version 4.9.2 libpcap version 1.8.1 OpenSSL 1.1.0h 27 M ...
- java import跨包引用类理解
当前类要用其他类时,import具体包路径+.+具体的类 import引入的是被引用类的class文件,所以当我们build path第三方jar包时, 要用他们的类,要把jar包add to bui ...
- ping测试丢包率
测试环境:Centos 6.4 增加参数:-i 例如: #ping -i 0.01 172.16.3.1 则每隔0.01秒ping一次
- Python多线程Selenium跨浏览器测试
前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏 ...
随机推荐
- HTML5 多媒体
1.互联网上的音频 直到现在,仍然不存在一项旨在网页上播放音频的标准. 今天,大多数音频是通过插件(比如 Flash)来播放的.然而,并非所有浏览器都拥有同样的插件. HTML5 规定了在网页上嵌入音 ...
- VTK 9.2 Qt 5.14 安装及错误处理
参考VTK9.1.0在Windows10+VS2019+Qt 5.15.2环境下编译安装以及VTK应用于QT_vtk-qt安装包_isongxw的博客-CSDN博客 安装注意:编译release和de ...
- 11C++循环结构-for循环(1)——教学
一.for语句 (第27课 老狼老狼几点钟)参考1 引出问题: 当需要重复执行某一语句时,使用for语句.for语句最常用的格式为: for (循环变量赋初值:循环条件:循环变量增值) 语句: 注: ...
- Redis应用—7.大Value处理方案
大纲 1.⽅案设计 2.安装与配置环境 1.⽅案设计 步骤一:首先需要配置一个crontab定时调度shell脚本,然后该脚本每天凌晨会通过rdbtools⼯具解析Redis的RDB⽂件,接着对解析出 ...
- WinDbg: Failed to find runtime module (coreclr.dll or clr.dll or libcoreclr.so)
当我们通过 WinDbg 启动一个 .NET 的程序时,WinDbg 将会在运行可执行之前执行一个中断,此时还没有加载 .NET 的运行时. 但是,SOS 扩展需要 clr.dll 或者 corecl ...
- 使用 Store 版的 WinDbg 调试 .NET 应用
1. 通过 Windows Store 安装 WinDbg 打开 Windows Store, 在搜索框中输入 WinDbg, 如果已经安装了,看到的是 Open,如果还没有安装,显式为 Get. 直 ...
- 这些“人美话又多”的同事们:2022 Q1 招聘人员 评优名单公布
编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 编辑 欢迎大家后台留言报名哈~
- gitlab16 gitlab-runner
gitlab-runner verify --delete FederatedKMeansSecureModelInference gitlab-runner register --url http ...
- Spring Security OAuth2 - 自定义 OAuth2.0 令牌发放接口地址
登录实现拿浏览器网页登录举例: 基于 OAuth2.0-密码模式 实现网页登录的本质就是浏览器通过 /oauth/token 接口将 用户名 和 密码 等信息传给后台, 然后后台验证通过后返回一个有效 ...
- Qt开发经验小技巧156-160
Qt的UI界面在resize以后有个BUG,悬停样式没有取消掉,需要主动模拟鼠标动一下. void frmMain::on_btnMenu_Max_clicked() { ...... //最大化以后 ...