开发工程师常常问到的一个问题是:测试用例执行了那么多,到底这些用例覆盖了多少的代码?那么在最终的测试报告中给出代码覆盖率是不是更加有说服力,因此这几天稍微看看了emma的东西,在这里记录下来用以备忘,这里只说off-line模式下emma使用命令行方式进行代码覆盖率统计。
off-line模式下使用emma一般来说包含三个步骤:
1)插桩-使用instr对于class文件(或者包含class文件的文件夹或者文件结构)
2)运行测试;
3)合并覆盖率统计数据-使用merge合并测试期间生成的统计数据;
4)输出统计报告-使用report生成
下面就使用方式进行说明:
1)前提准备:
将emma.jar加入jdk安装目录下的jre/lib/ext目录或者将emma.jar加入classpath环境变量中;
使用java emma调用显示emma的使用方式表示emma加入classpath成功;
2)instr:
java emma instr {-ip(/-cp) 插桩路径} [-d 插桩后的class文件输出目录] [-out 元数据文件输出位置] [-merge boolean] [-m 插桩模式] [-ix 插桩过滤] [commom options]
-ip -cp:该选项可以重复多次,用于指示要进行插桩的class文件,可以使用-ip来指示单个class文件,使用-cp来指示文件夹或者文件结构(jar);
-d:该选项指示插桩后的class文件保存位置,如果给定的插桩模式是overwrite的话该选项被忽略;
-out:指示存储统计信息文件的位置(默认统计信息存储在当前文件夹中);
-merge(y[es]|n[o]):指示统计信息是否可以被合并至-out参数指定的输出位置;
-m(copy|overwrite|fullcopy):指示插桩后的文件输出模式,copy表示只有那些进行了插桩的文件输出至-d指示的文件夹,overwrite表示覆盖原始文件,fullcopy表示复制所有的class文件(不论是否插桩)去-d/classes文件夹,所有文件结构(jar)去-d/lib文件夹;
-ix:插桩过滤器,指示那些文件进行插桩,可以重复用以指定多个过滤器;
3)report:
java emma report {-in 统计数据文件} {-r 输出文件格式} [-sp 源文件位置] [common options]
-in:可重复的参数,指示产生报告的统计数据文件;
-r(txt|html|xml):产生的报表文件的格式;
-sp:源文件所在位置,用于关联报表文件与源代码;
4)merge:
java emma merge {-in 统计数据文件} [-out 合并后的数据文件] [common options]
-in:可重复参数项,用于选择要进行合并的数据文件;
-out:用于存储合并后的数据文件位置;
实例:
1)instr:
2)运行:
3)生成报表:
- 大小: 54.4 KB
- 大小: 72.9 KB
- 大小: 94 KB
分享到:
相关推荐
2. Offline 模式:在程序运行之前,Emma 会对 .class 文件进行预处理,添加字节码。这种方式可以为所有需要测试的类生成覆盖率报告,无论它们的加载方式如何。 配置 Emma 的步骤通常包括以下部分: - 下载 emma....
6. **Fastboot模式下的操作**:当设备在Fastboot模式下,可以使用Fastboot工具进行固件更新或恢复。Fastboot是另一个低级别的命令行工具,用于与设备的引导加载器通信。例如,你可以使用`fastboot devices`命令检查...
总结来说,"trivy-offline.db.tgz"是Trivy工具在离线环境下的重要组成部分,它使我们能够在无网络连接的情况下对容器镜像进行安全评估,确保了安全检查的全面性和及时性。了解并合理利用这个离线数据库,对于任何...
在进行网站开发的过程中,经常会遇到一些棘手的技术问题。其中一个常见的问题是,在测试或部署阶段,无论何时尝试访问网站的任何页面,都只会看到一个提示页面:“This application is currently offline. To enable...
外部表的元数据由Hive管理,但数据存储在用户指定的`LOCATION`,这允许用户在不通过Hive的情况下独立处理数据。 4. **表注释**:`COMMENT table_comment`可为表添加描述性注释。 5. **分区表**:`PARTITIONED BY`...
离线浏览器Portable Offline Browser是一款专为用户在无网络环境下访问网站设计的软件工具。它允许用户将整个网站或其中特定部分下载到本地计算机上,以便在没有互联网连接时也能浏览内容。这款国外开发的优秀离线...
在没有互联网连接的情况下,用户可以将此数据包导入到电脑,然后让DriverPack Solution从中提取必要的驱动进行安装。 3. **.torrent 文件**:这种文件是BitTorrent协议的一部分,用于追踪文件的下载来源和进度。...
随着安卓系统升级,ADB与fastboot工具也需要同时更新,否则会出现offline或其他问题,安卓4.1系统还需要进行手机端的确认,使用老版本的ADB无法正常启动确认过程。但是如果想更新新版本的ADB与fastboot,必须要下载...
这就引出了我们今天要讨论的主题——Bmap-offline的api.js资源,它为开发者提供了一种在离线环境中调用百度地图API的方式。 Bmap-offline的api.js是针对百度地图API的一个离线解决方案,它专门设计来支持3.0版本的...
在使用Visual Studio(简称VS)进行.NET Web应用程序开发时,可能会遇到应用程序启动失败,并且控制台提示“app_offline”的错误。这个错误通常发生在对应用程序进行更新部署的过程中,特别是在IIS(Internet ...
这个文件可能包含了最新版本的ADB,用户只需将它放置到系统路径下,或者配置相应的环境变量,就可以在命令行中直接使用ADB命令。 总的来说,这个压缩包提供了一个离线安装的ADB工具,适用于那些没有网络或者需要...
"Offline NT Password and Registry Editor" 是一个专门用于在离线状态下重置或修改Windows系统密码的工具,尤其适用于忘记系统登录密码的情况。这个工具的工作原理是通过启动到DOS环境,然后对系统的SAM(安全账号...
### Offline Explorer Enterprise 5.9 的使用方法详解 #### 一、概述 Offline Explorer Enterprise 是一款功能强大的离线浏览工具,适用于需要批量下载网站数据、文档等资源的用户。通过这款软件,用户不仅可以轻松...
### Extend a FS offline-单用户模式 #### 一、机房环境及物理检查 ##### 1. 温度与湿度: 机房内的温度与湿度对IT设备的稳定运行至关重要。根据给定信息,最佳的工作温度范围是20-25摄氏度,极限工作温度范围则...
本篇文档将详细介绍在Linux和Windows环境下,针对不同类型的RAID控制器(如LSI、Adaptec)如何使用相应的管理工具来实现这一操作。 首先,我们来看Linux环境下如何处理LSI RAID卡上的报错硬盘。这里使用的是storcli...
在本主题中,我们关注的是如何下载MQTT相关的资源,以及如何使用AI2Offline-x64-491app开发工具结合MicroPython和ESP32来实现MQTT通信。 首先,`AI2Offline_x64_491.exe`很可能是一个Windows平台上的应用程序安装...
"CapsWriter"可能是这个工具的名称,而"Offline"提示它不需要互联网连接即可使用。这个压缩包可能包含源代码、可执行文件或者与Python编程语言相关的库和模块。 描述部分没有提供额外的信息,但我们可以根据"python...
"baidumap_js_offline_V3.0" 是一个特别针对离线环境设计的百度地图JavaScript库,允许开发者在没有网络连接的情况下依然能够展示和操作地图。 首先,我们来了解一下什么是百度地图JavaScript API V3.0。这是百度...