测试工具 - 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 作为编程语言.它包含大量实用的库和工具, ...
随机推荐
- Angular 相关概念
1.XMLHttpRequest 对象(属于xmlJavascript) XMLHttpRequest 对象用于在后台与服务器交换数据. Ajax 是对XMLHttpRequest 的封装,XMLHt ...
- OpenCV: “vector”: 未声明的标识符和Vector不是模板
漏写using namespace std: 会出现此错误“vector”: 未声明的标识符或者是将“vector”写成‘Vector’会出现Vector不是模板的错误:改正即可
- ModuleNotFoundError: No module named 'numpy.testing.nosetester'
- 跨站点请求伪造(CSRF、XSRF)
相关文章: 1. http://www.cnblogs.com/xiaoqian1993/p/5816085.html 深入解析跨站请求伪造漏洞:原理剖析 2 .http://blog.csdn.n ...
- Centos7添加软链接
1.pycharm添加软连接: 命令行模式中输入命令: ln -s /root/pycharm-2018.1/bin/pycharm.sh /usr/bin/pycharm ps:代码中/root/p ...
- [UOJ228] 基础数据结构练习题 - 线段树
考虑到一个数开根号 \(loglog\) 次后就会变成1,设某个Node的势能为 \(loglog(maxv-minv)\) ,那么一次根号操作会使得势能下降 \(1\) ,一次加操作最多增加 \(l ...
- mysql 查询——逻辑查询
--去重查询 distinct select distinct gander from student; --逻辑查询 and or not --查询18-28之间的数据 select *from s ...
- python os 模块详解
os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得 ...
- FineUIPro/Mvc/Core v6.1.0 发布了!
FineUIPro/Mvc/Core v6.1.0 正式发布了(2019-12-25),这个版本主要是BUG修正,并增加了一些新特性,建议升级到此版本. 在列举新版本特性之前,我们先来回顾下每次发布大 ...
- OPC通信原理在数采中的应用
OPC通信原理在数采中的应用 OPC是Object Linking and Embedding(OLE)for Process Control的缩写,它是微软公司的对象链接和嵌入技术在过程控制方面的应 ...