测试工具 - 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 作为编程语言.它包含大量实用的库和工具, ...
随机推荐
- [Arc083D/At3535] Restoring Road Network - 最短路,结论
[Arc083D/At3535] 有 \(N\) 个城市,城市与城市之间用长度为整数的无向道路连接. 现有一考古学家找到了一张 \(N×N\) 的表 \(A\) ,这张表代表了这 \(N\) 座城市两 ...
- PP: Robust Anomaly Detection for Multivariate Time Series through Stochastic Recurrent Neural Network
PROBLEM: OmniAnomaly multivariate time series anomaly detection + unsupervised 主体思想: input: multivar ...
- Postgresql Json Sql
a detailed website about json sql query; official website: here, chinese version: here Json query: - ...
- day06_类与对象、封装、构造方法
02_面向对象与常用类 01_面向对象思想的概述 面向过程:当需要实现一个功能的时候,每个具体的步骤都需要亲力亲为,详细处理每一个细节. 面向对象:当需要实现一个功能的时候,不关心具体步骤,而是找一个 ...
- Servlet与idea
1.idea会为每一个Tomcat部署的项目,独立建一份配置文件. 配置文件所在位置 怎么部署的?使用的第三种部署方式(查看虚拟目录) docBase部署项目存放的路径 项目目录和Tomcat部署目录 ...
- jdk8-》stream⾥的map和filter函数使⽤
map函数 将流中的每⼀个元素 T(入参) 映射为 R(返回值)(类似类型转换) 类似遍历集合,对集合的每个对象做处理.场景:转换对象,如javaweb开发中集合⾥⾯的DO对象转换为DTO对象 ...
- HTML代码中<%%>、<%=%>
运行.获取后台代码或值.<%%>之间可以写服务器端代码,比如<%for(var i=0;i<10;i++){//执行循环体}%>又如<%for(var i=0;i& ...
- 【转】Error,java对常量池来说字符串xxx的UTF8表示过长的解决及其理解
做项目,客户端这里自己模拟json数据时,一时没忍住搞得json字符串太长了(idea上大概有600多行吧),这个问题就蹦出来了.老方法直接google.百度然后看到一堆有关String 字符串常量池 ...
- PLSQL无法连接(不存在或找不到oci.dll)
问题说明:新系统安装plsql后,连接不上Oracle,连接时出现过两种报错 1.找不到OCI.dll文件 2.不能初始化OCI.dll文件,即OCI.dll文件错误 解决方案 plsql连接Orac ...
- C语言循环语句工程用法
-循环语句分析 循环语句的基本工作方式 - 通过条件表达式判断是否执行循环体 - 条件表达式循环if语句表达式的原则 do.while.for的区别 - do语句先执行后判断,循环体至少循环一次 - ...