当前位置: 首页 > article >正文

go语言 goc覆盖率统计

前言

有些代码需要统计整体代码的自动化测试覆盖率,下面说一下这个覆盖率应该如何统计

实现过程

安装goc

# Mac/AMD64
curl -s -L "https://github.com/qiniu/goc/releases/latest" | sed -nE 's!.*"([^"]*-darwin-amd64.tar.gz)".*!https://github.com\1!p' | xargs -n 1 curl -L  | tar -zx && chmod +x goc && mv goc /usr/local/bin

# Linux/AMD64
curl -s -L "https://github.com/qiniu/goc/releases/latest" | sed -nE 's!.*"([^"]*-linux-amd64.tar.gz)".*!https://github.com\1!p' | xargs -n 1 curl -L  | tar -zx && chmod +x goc && mv goc /usr/local/bin

# Linux/386
curl -s -L "https://github.com/qiniu/goc/releases/latest" | sed -nE 's!.*"([^"]*-linux-386.tar.gz)".*!https://github.com\1!p' | xargs -n 1 curl -L  | tar -zx && chmod +x goc && mv goc /usr/local/bin

如果上面的安装方式有问题,就给拆开安装。比如用下面的命令举个例子:

curl -s -L "https://github.com/qiniu/goc/releases/latest" | sed -nE 's!.*"([^"]*-darwin-amd64.tar.gz)".*!https://github.com\1!p' | xargs -n 1 curl -L  | tar -zx && chmod +x goc && mv goc /usr/local/bin

拆成:
第一步:
在网站https://github.com/qiniu/goc/releases/latest中找到想要下载的版本
在这里插入图片描述
下载上图的压缩包,之后给解压,就会有一个goc二进制文件
第二步:
给goc文件添加权限,并且移动到/usr/local/bin路径

chmod +x goc
mv goc /usr/local/bin

安装完成之后使用命令:goc version 查看是否安装完成

xxx$goc version
v1.4.5

编译goc版本

首先先git clone下来需要统计的被测试的服务。例如:

git clone xxxx

进入拉下来的代码目录,编译goc版本

goc build -o 想编译成的文件名 .

启动goc server服务,此时运行该服务之后就会出现下图所示address地址。接下来需要根据该地址获取统计覆盖率的结果

# 启动命令
goc server

在这里插入图片描述

接下来就把你要测试的服务给启动起来,这里面有个细节就是必须使用用goc编译的二进制文件启动

运行自动化或能自测到服务代码手段

接下来运行自动化或者自测使用到的一些脚本什么的,目的是能走到服务的代码逻辑

获取覆盖率结果

运行完之后,这个时候我们去拿到覆盖率结果,使用命令:

goc profile --center="http://xxxx:25475" > coverage.out

这个时候查看,会发现目录下多了一个coverage.out文件,将这个文件移动到git clone下来的代码路径中,进入git clone的代码路径中,执行下面的命令就可以得到总的自动化覆盖率情况

go tool cover -func=coverage.out

结果如下图
在这里插入图片描述


http://www.kler.cn/a/511633.html

相关文章:

  • 编辑器Vim基本模式和指令 --【Linux基础开发工具】
  • Windows11电脑总是一闪一闪的,黑一下亮一些怎么解决
  • Jenkins-pipeline Jenkinsfile说明
  • Spring Boot项目集成Redisson 原始依赖与 Spring Boot Starter 的流程
  • git操作
  • 【Linux 重装】Ubuntu 启动盘 U盘无法被识别,如何处理?
  • 如何安装linux版本的node.js
  • 本地仓库管理之当前分支内的操作
  • Stata应用:将数据“画”在中国地图上|Python数据分析
  • springboot财务管理系统
  • Unity3D仿星露谷物语开发24之创建时间管理器
  • 【Kafka】Linux+KRaft集群部署指南
  • 在 Ubuntu 上安装 Jetzig 框架指南
  • 【Java数据结构】优先级队列(堆)
  • KubeSphere 与 Pig 微服务平台的整合与优化:全流程容器化部署实践
  • ChatGPT 写作系列
  • 汇编与逆向(一)-汇编工具简介
  • 【24】Word:小郑-准考证❗
  • Windows 通过 openssh 连接 Ubuntu 24.04 LTS
  • leetcode300.最长递增子序列
  • css‘s hover VS mobile
  • UnderTow服务器
  • 第10章:Python TDD优化货币类方法与引入工厂方法
  • 【学习笔记15】如何在非root服务器中,安装属于自己的redis
  • rocketmq dashboard 安装
  • w-form-select.vue(自定义下拉框组件)