测试工具 - IDEA - IDEA Code Coverage
- 概述
- 使用 idea 自带的 code coverage 工具
- 背景
- 了解 白盒测试用例设计 和 测试覆盖率 之后, 大概就需要 实践 了
- 实践的话, 还是需要 工具 来检验效果
- 工具选取
- 选项
- JaCoCo
- IDEA Code Coverage
- 结果
- 两个都想试试
- 先看看 IDEA CC, 这个比较简单
- JaCoCo 感觉更加复杂
- 指标
- 使用的场景都更加复杂
- 先讲 IDEA Code Coverage
- 简单
- Idea 自带, 集成方便
- 两个都想试试
- 选项
1. 准备
- 理论基础
- 白盒测试用例设计
- 测试覆盖率
- 环境
- os
- win 10
- ide
- idea 2018.2
- 组件
- java
- jdk8
- testng
- 6.14.3
- maven
- 3.6.0
- java
- os
- 代码
- maven architecture
- quickstart
- maven architecture
- 其他
- idea 插件
- coverage
- 这个一定要有
- 有了, 一定要打开
- idea 添加插件, 我就不讲了
- coverage
- testng 的配置文件
- 这个我也不细讲了
- 自动生成配置文件的插件, 我之前讲过
- 配置文件里一些主要的配置, 我也讲过
- 这个我也不细讲了
- idea 插件
2. 触发
- 概述
- 通过 执行测试, 触发 Coverage 插件
- 步骤
- 执行测试
- 进入某个测试类
- 比如 maven 工程自带的 AppTest 类
- 执行测试
- 在 类 中右键
- 选择 'Run Apptest with Coverage'
- 当然, 执行方式有很多
- 方法
- 类
- 配置文件
- 进入某个测试类
- 执行测试
- 结果
- 测试执行完毕
- 默认在 idea 右边, 弹出一个 coverage 的插件
- 问题
- 如果没有出现怎么办
- 这个需要确认这些东西
- 插件是否下载
- 插件是否激活
- coverage 视图是否激活
- File > Settings > Build, Execution, Deployment > Coverage
- Active coverage view 选项
- 记得打钩
- Active coverage view 选项
- File > Settings > Build, Execution, Deployment > Coverage
- 这个需要确认这些东西
- 如果没有出现怎么办
3. Coverage 视图简单介绍
- 概述
- 简单说下视图里的内容
- 其实没啥好说的, 操作两下, 就明白了
- 简单说下视图里的内容
- 标签
- 标题
- 你执行 测试, 所对应的 Configuration
- 这意味着, 你又可以有地方调参数了...
- 你执行 测试, 所对应的 Configuration
- 左边一列的操作
- 向上
- 平铺展示
- coverage 视图焦点, 控制代码展示窗口
- 代码展示窗口, 控制 coverage 视图焦点,
- 生成报告
- 选择 文件路径, 生成报告
- 报告内容, 并不会很多
- 自己看看, 就明白了了
- 关闭视图
- 表格内容
- 元素
- 包或者文件
- class, %
- 类覆盖率
- method, %
- 方法覆盖率
- line, %
- 行覆盖率
- 元素
- 表格交互
- 单击包
- 进入 包内, 并展示包内覆盖率
- 单击类
- 代码会跳转的类, 并且会聚焦到没有覆盖的位置
- 单击包
- 标题
4. 代码区域
- 概述
- 执行 带覆盖率的测试 后, 代码区域也会发生变化
- 我这边默认是的 coverage 模式是 simpling
- 所以我先按照这个讲...
- 代码窗口
- 侧边栏
- 色块
- 红色
- 没有覆盖
- 绿色
- 覆盖至少一次
- 黄色
- 条件覆盖不充分
- 鼠标点击颜色
- 会出现 浮动的小窗
- 没啥前端背景, 所以这些东西准确叫啥, 真的让我很为难
- 红色
- 浮动小窗
- 顶部控件
- 上下
- 在色块之间上下移动
- 灰色文件夹
- 暂时不可用, 后来再讲
- 字节码展示
- 开启新的小窗口, 展示 字节码
- 高端功能暂时用不了
- 开启新的小窗口, 展示 字节码
- 颜色设置
- 这个暂时用不了
- 默认颜色挺好的
- 这个暂时用不了
- 红叉
- 这个不是退出标签
- 这个是清楚这一轮的覆盖率数据
- 点的时候请注意
- 退出的话, 直接鼠标在别处点一下, 就行了
- 上下
- 顶部控件
- 色块
- 侧边栏
5. Project 区域
- 概述
- Project 区域的覆盖率展示
- 惊喜
- 眼睑的同学, 已经有了新的发现
- Project 栏里的包树形图, 右侧已经出现了一些关于 覆盖率的信息
- package
- 类覆盖率
- 行覆盖率
- class
- 方法覆盖率
- 行覆盖率
- package
- Project 栏里的包树形图, 右侧已经出现了一些关于 覆盖率的信息
- 眼睑的同学, 已经有了新的发现
- 疑问
- 问题1: 我不想要这东西, 有办法吗?
- 当然有啦
- 路径
- ctrl + alt + f6
- Analyze > show coverage data
- 操作
- 勾选你想要显示 覆盖率的路径
- 然后确定
- 路径
- 当然有啦
- 问题1: 我不想要这东西, 有办法吗?
6. configuraion 配置
- 概述
- 覆盖率这个东西, 也是可以配置的
- 路径
- 打开 run configuration
- 找到你执行测试的那个 configuration
- 切换到 coverage tab
- 选项说明
- choose coverage runner
- 现在用 idea
- 讲 jacoco 的时候, 应该要换的
- sampling & tracing
- 模式
- 针对 idea 的选项
- 其他 runner, 只有 sampling
- sampling
- 简单模式
- 就是上面讲的东西
- 简单模式
- tracing
- 追踪模式
- 概述
- 会对 判定 做更细致的追踪
- 变化
- 后面会描述
- 概述
- 追踪模式
- 模式
- packages and classes to record coverage data
- 概述
- 追踪覆盖率的类
- 建议
- 最好勾选一下
- 如果默认的话, 所有的包都会出现在 coverage 那个窗口里
- 虽然没 覆盖率, 但是看着好烦的...
- 如果默认的话, 所有的包都会出现在 coverage 那个窗口里
- 最好勾选一下
- 概述
- choose coverage runner
- tracing 模式的变化
- 概述
- tracing 模式有所增强
- 增强内容
- 对 if 的判断, 有了增强
- 会统计 if 里 各个条件 真假执行次数
- 对 if 的判断, 有了增强
- 具体表现
- 单击 左侧的色块
- if 条件那行, 会有更加明确的信息
- 单击 左侧的色块
- 选项: track per test coverage
- 概述
- 追踪测试方法
- 回顾
- 之前色块的小弹窗里, 有个不可执行的灰色文件夹, 还记得吗?
- 勾选之后
- 单击那个 灰色文件夹
- 有新弹窗出现
- 内容是 执行这个代码的 测试方法
- 感觉是个 很不错的功能
- 单击那个 灰色文件夹
- 概述
- 概述
- 问题
- 尝试配置修改中, 我有过多次执行同一个 configuration
- 执行完后, 会有一个弹窗
- 看得我一脸懵逼
- 这玩意是什么鬼, 能设置吗?o
- 看得我一脸懵逼
- 当然能啦
- 执行完后, 会有一个弹窗
- 尝试配置修改中, 我有过多次执行同一个 configuration
7. settings 配置
- 概述
- settings 里的配置
- 路径
- 开始提到过的一个路径
- File > Settings > Build, Execution, Deployment > Coverage
- 开始提到过的一个路径
- 配置
- when new coverage is gathered
- 概述
- 配置 新的覆盖率 是否聚合
- 选项
- active coverage view
- 概述
- 展示 coverage 窗口
- 作用
- 执行 run test with coverage 时, 展示 coverage 窗口
- 这次一定要先讲下面这个...
- 首先要窗口出现, 才能出发后面的东西吧
- 概述
- 一个 radio
- 选项
- show options before applying coverage to the editor
- 已经弹出 coverage 视图后, 再次执行, 会弹出一个 选项框
- 询问的选项, 就是下面三种
- 已经弹出 coverage 视图后, 再次执行, 会弹出一个 选项框
- do not apply collected coverage
- 丢弃 这次的 代码覆盖率结果
- replace active suites with the new one
- 丢弃 上次的 代码覆盖率结果
- 将 这次的 代码覆盖率结果, 填充到 coverage 窗口
- add to the active suites
- 保留 上次的 代码覆盖率结果
- 将 这次的 代码覆盖率结果, 叠加到 coverage 窗口
- show options before applying coverage to the editor
- 问题
- 大部分时候都好用, 但是碰到过几次失灵的情况
- 直接用了 选项3
- 问题需要我 确认
- 大部分时候都好用, 但是碰到过几次失灵的情况
- 选项
- active coverage view
- 概述
- java coverage
- 选项
- 不统计 普通类 的默认构造函数
- 统计也没啥意义
- 不统计 工具类 的私有构造函数
- 工具类不需要实例化
- 所以通常做一个 私有构造, 防止有开发把这个类实例化
- 工具类不需要实例化
- 不统计 普通类 的默认构造函数
- 解释
- 这来选项我就翻译一下, 意义就不解释了, 大家应该都懂
- 选项
- when new coverage is gathered
ps
- ref
- Code coverage
- 官方文档
- 就这一个吧, 其他的基本是自己边尝试边整理
- 官方文档
- Code coverage
- 后续
- jacoco
- ide
- maven
- jenkins
- jacoco
- 为啥不直接讲 jacoco
- jacoco 其实有点复杂
- 数据
- 配置
- idea 简单好理解
- 两者有些东西, 本质上是相通的
- 理解了简单的 idea, 后面依葫芦画瓢, 学习曲线会更加平滑
- jacoco 其实有点复杂
- 遗漏
- 生成的结果报表
- 这个不太难, 基本都能看懂
- 生成的结果报表
测试工具 - IDEA - IDEA Code Coverage的更多相关文章
- 代码覆盖率 (Code Coverage)从简到繁 (一)
代码覆盖率(Code Coverage)是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标.它也是对测试工作进行量化的重要指标之一,测试工作往往不如开发那样激动人心,一个重 ...
- 覆盖率测试工具gcov的前端工具_LCOV
http://my.oschina.net/alphajay/blog/33725 1.Gcov是进行代码运行的覆盖率统计的工具,它随着gcc的发布一起发布的,它的使用也很简单,需要在编译和链接的时候 ...
- Qt代码覆盖率code coverage(VS版)
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt代码覆盖率code coverage(VS版) 本文地址:http://techi ...
- iOS代码覆盖率测试工具
基于lcov-1.11的:CodeCoverage4iOS 阅读目录 环境准备 Xcode工程配置 构建并安装程序 收集代码覆盖率 过滤结果 合并多个Coverage.info⽂件⽣成覆盖率报告: ...
- Android高手速成--第四部分 开发工具及测试工具
第四部分 开发工具及测试工具 主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Json2Java根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson ...
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...
- 网站性能Web压力测试工具webbench
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统:Linux 2.编译安装: wget http:/ ...
- Linux压力测试工具
1 http_load:http://www.oschina.net/p/http_load 命令行输入man http_load 或者 http_load -h可以看到工具的使用方式: 参数说明: ...
- Python渗透测试工具合集
摘自:http://www.freebuf.com/tools/94777.html 如果你热爱漏洞研究.逆向工程或者渗透测试,我强烈推荐你使用 Python 作为编程语言.它包含大量实用的库和工具, ...
随机推荐
- 题解【AcWing91】最短Hamilton路径
题面 看到数据范围这么小,第一眼想到爆搜. 然而这样做的复杂度是 \(\mathcal{O}(n! \times n)\) 的,明显会 TLE. 于是考虑状压 DP. 我们设 \(dp_{i,j}\) ...
- centos8 apache+mysql+php
apache安装 dnf install httpd httpd-tools 开机启动 systemctl enable httpd 立即启动 systemctl start httpd 查看状态 s ...
- 题解 P5613 【[MtOI2019]黑蚊子多】
题目传送门 一道模拟题目,签到送分题. 您需要的知识 1.while循环 2.for循环 3.一维数组 思路: Step 1:按题目要求,定义a[],n,m,k int a[10001]; int n ...
- SpringBoot整合WEB开发--(七)注册拦截器
1.创建一个拦截器类实现HandlerInterceptor接口,重写其中的3个方法,这拦截器中方法的执行顺序为:preHandle--Controller--postHandle--afterCom ...
- SequoiaDB巨杉数据库入门:快速搭建流媒体服务器
使用SequoiaDB的分布式文件系统搭建流媒体服务器 介绍 如今使用移动互联网的年轻人开始越来越多使用短视频展示自我,而流媒体则是支撑在线视频播放的核心技术.当我们开始构建流媒体站点时,往往面临最大 ...
- 解决前端js、css缓存问题
去js标签库查询jquery.i18n.properties.js这个js引用到页面上: 新建一个配置文件:用上面的那个js方法调取配置文件里的版本号给其他的js加上: 示例: <script ...
- bitlocker对磁盘进行加密解密
1,bitlocker是什么? BitLocker即Windows BitLocker驱动器加密.是微软在Windows Vista中新增的一种数据保护功能.使用BitLocker可以加密磁盘.主要用 ...
- MSSQL 打开xp_cmdshell
sp_configure reconfigure go sp_configure reconfigure go
- ServletContext总结(转)
今天我们学习的是ServletContext的应用. WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用. ServletConfig对 ...
- Java-POJ1006-Biorhythms(中国剩余定理)
https://blog.csdn.net/shanshanpt/article/details/8724769 有中文题面,就不解释了. 妥妥的中国剩余定理没跑了. Java跑得慢,一点办法也没有, ...