码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • go test用法(获取单元测试覆盖率)


    go test用法(获取ut覆盖率)

    为了提升系统的稳定性,一般公司都会对代码的单元测试覆盖率有一定要求。下面针对golang自带的测试命令go test做讲解。

    1 命令

    1.1 go test ./… (运行当前目录及所有子目录下的测试用例)

    # 运行当前目录及其子目录下的测试用例
    go test ./... 
    
    • 1
    • 2

    1.2 go test dir0/…(运行指定目录及所有子目录用例)

    # 运行dir0目录及其子目录下的用例
    go test dir0/...
    
    • 1
    • 2

    1.3 go test user…(运行user前缀的用例)

    # 运行指定前缀的测试用例
    go test user...
    
    • 1
    • 2

    1.4 go test …(运行GOPATH下的所有用例)

    # 运行GOPATH下的所有用例
    go test ...
    
    • 1
    • 2

    1.5 goland可视化执行

    选中目录-鼠标右击-Run wtih Coverage
    在这里插入图片描述

    2 生成并分析覆盖率报告

    2.1 生成报告

    go test -mod=vendor -covermode=count -coverprofile=coverprofile.cov -run="^Test" -coverpkg=$(go list -mod=vendor ./... | grep -v "/test" | tr '\n' ',') ./...
    
    或 非 vendor 模式:
    go test -covermode=count -coverprofile=coverprofile.cov -run="^Test" -coverpkg=$(go list ./... | grep -v "/test" | tr '\n' ',') ./...
    
    • 1
    • 2
    • 3
    • 4
    • 执行命令之后会生成coverprofile.cov文件
      在这里插入图片描述

    指令简单说明:

    1. mod=vendor: 加载依赖的方式:从本地vendor 目录加载。适用于服务器不能从外网下载依赖的情况
    2. covermode: count: 统计代码访问次数;set: 统计代码是否被访问;
    3. atomic: 一般在并发工程中使用(?)
    4. run: 正则方式指定需要运行的测试方法
    5. coverpkg: 指定业务代码路径,多个用逗号隔开,详细说明在后面
    6. ./…:遍历当前目录下测试文件,包括子目录

    2.2 分析报告

    ①html方式查看:go tool cover -html=coverprofile.cov
    # 通过html 文件打开(推荐,能看到方法细节):
    go tool cover -html=coverprofile.cov
    
    • 1
    • 2

    在这里插入图片描述

    ②命令行查看:go tool cover -func=coverprofile.cov
    # 在命令行直接查看:
    go tool cover -func=coverprofile.cov
    
    • 1
    • 2

    在这里插入图片描述

    参考:https://blog.csdn.net/xiaoliizi/article/details/107568024

  • 相关阅读:
    Android Span进阶之路——ClickableSpan
    Meta收购德国触觉技术公司Lofelt,同时FTC严格要求Meta收购事宜
    Three.js使用ExtrudeGeometry拉伸模型
    【Java初阶】Array详解(上)
    JAVA计算机毕业设计新生入学报到管理系统Mybatis+系统+数据库+调试部署
    【LeetCode】 贴纸拼词(动态规划)
    Linux运行环境搭建系列-Flink安装
    酷克数据与华为合作更进一步 携手推出云数仓联合解决方案
    详解C语言指针(二)
    联邦学习系统攻击与防御技术
  • 原文地址:https://blog.csdn.net/weixin_45565886/article/details/136330716
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号