首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Android和gradle上使用Jacoco生成覆盖率报告时排除测试

在Android和gradle上使用Jacoco生成覆盖率报告时,可以通过配置来排除测试。

首先,在项目的根目录下的build.gradle文件中,添加Jacoco插件的依赖:

代码语言:txt
复制
buildscript {
    dependencies {
        classpath 'org.jacoco:org.jacoco.core:0.8.7'
    }
}

然后,在app模块的build.gradle文件中,应用Jacoco插件并配置Jacoco任务:

代码语言:txt
复制
apply plugin: 'jacoco'

android {
    // ...
}

jacoco {
    toolVersion = "0.8.7"
}

task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) {
    reports {
        xml.enabled = true
        html.enabled = true
    }

    def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*']
    def debugTree = fileTree(dir: "${buildDir}/intermediates/classes/debug", excludes: fileFilter)
    def mainSrc = "${project.projectDir}/src/main/java"

    sourceDirectories = files([mainSrc])
    classDirectories = files([debugTree])
    executionData = fileTree(dir: project.buildDir, includes: ['jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec'])
}

在上述配置中,jacocoTestReport任务依赖于testDebugUnitTestcreateDebugCoverageReport任务,这两个任务会在执行jacocoTestReport之前生成测试覆盖率数据。

接下来,可以通过配置fileFilter来排除测试相关的文件,例如**/*Test*.*会排除所有包含"Test"的文件。

最后,执行以下命令生成覆盖率报告:

代码语言:txt
复制
./gradlew jacocoTestReport

执行完毕后,可以在app/build/reports/jacoco/jacocoTestReport目录下找到生成的覆盖率报告,包括XML和HTML格式的报告。

推荐的腾讯云相关产品:腾讯云移动测试服务(MTS),该服务提供了全面的移动应用测试解决方案,包括自动化测试、性能测试、兼容性测试等,可帮助开发者提高移动应用的质量和稳定性。产品介绍链接地址:腾讯云移动测试服务

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android app 功能代码覆盖率--Jacoco(一)

Jacoco覆盖率主要是进行功能测试来统计下所覆盖率的类,方法等,是一种辅助评估项目质量,风险及用例设计是否完善的方法。...切记,Jacoco覆盖率并不是指单元测试覆盖率; 就不说Jacoco的原理了,我们就讲如何在android app配置使用jacoco~ 步骤: 首先得有项目APP的源码; 用android...studio 打开源码,然后对下载下来的jacocohelperjacoco.gradle导入到项目中,jacocohelper导入项目根目录,而jacoco.gradle导入到app/下 ?...配置app下的build.gradle,主要有三个地方,详情看图: ? ? ? 在项目下/settings.gradle,配置jacocohelper ?...以上,是关于对于JacocoAndroid app覆盖率的在代码的配置,下一章节会讲关于报告生成~

2.5K40

简单两步实现 Jacoco+Android 代码覆盖率的接入!(最新最全版)

Offline模式: 在测试前先对文件进行插桩,然后生成插过桩的class或jar包,测试插过桩的classjar包后,会生成动态覆盖信息到文件,最后统一对覆盖信息进行处理,并生成报告。...但在Android项目中只能使用JaCoCo的离线插桩模式,主要是因为Android系统破坏了JaCoCo的这种便利性,原因如下: Android虚拟机跟运行在服务器的JVM不同,它所支持的字节码必须经过特殊的处理以支持...ec文件的地方调用下面的方法: JacocoHelper.generateEcFile(true); 生成测试报告 通过上面的两个步骤,我们就完成了Android项目的Jacoco配置,下面再教大家如何使用它来获取我们手工或者自动化测试的代码覆盖率...报告分析 生成报告如下: 点击包名你可以看到类的覆盖率情况 再点击类名,可以看到具体哪些代码被调用到了,又有哪些代码没有被调用到 落地场景 我们既然可以根据执行的用例拿到代码的覆盖情况,那么我们就可以基于这个数据来做度量精准测试了...,比如: 1、可以让业务QA或者外包使用覆盖率包来完成功能模块的测试工作,这样就可以根据生成覆盖率数据来度量测试效果了; 2、另外在做精准测试的时候,我们都需要维护用例代码的关系库,那么如何得到这个关系呢

5.1K20

Spring Boot - JaCoCo Code Coverage

JaCoCo生成覆盖率报告可以帮助开发者识别未被测试到的代码部分,从而指导他们完善测试用例。...JaCoCo的设计旨在提供灵活的集成方式,可以与其他开发测试工具SonarJenkins集成,以增强代码质量测试流程的管理。...测试完成后,JaCoCo生成覆盖率报告,通常在target/site/jacoco目录下(对于Maven项目)。 分析覆盖率报告: 打开生成的HTML报告,分析覆盖率数据。...在CI/CD配置中添加步骤来运行测试生成覆盖率报告使用JaCoCo的命令行工具(可选): 使用JaCoCo提供的命令行工具来生成报告jacoco coverage report。...排除不相关的类 意到 App类对于覆盖率报告并不是非常重要。在某些情况下,此类的覆盖率可能会扭曲整体代码覆盖率报告。为了避免此类不相关的类影响代码覆盖率,我们可以使用Jacoco插件将其排除

30411

Android Gradle 插件】BuildType 编译类型配置 ⑦ ( BuildType#testCoverageEnabled 配置 )

BuildType 编译类型 启用测试覆盖率报告 ; 配置了 testCoverageEnabled 为 true 后 , 编译 Android 项目 , 会自动生成一个任务 , 用于报告 " 测试覆盖率..." ; 是否为此生成类型启用测试覆盖率。...如果启用,它将使用Jacoco捕获覆盖率,并在构建目录中创建报告。...任务 , 就是创建的 报告测试覆盖率 的任务 ; 执行 gradlew :app:createDebugCoverageReport 命令 , 生成 " 测试覆盖率报告 " 成功 , 生成路径为 "...0% , 也就是一个测试也没有 ; 注意 : 需要关闭混淆 , 不要设置包名后缀 , 参考 【错误记录】Android Studio 中生成测试覆盖率报告出错 ( ExampleInstrumentedTest

35510

Android自动化测试探索(五)代码覆盖率统计

覆盖率监测的原理 覆盖率监测的原理跟iOS的原理差不多,大致的思路参考下吧, iOS自动化探索(十)代码覆盖率统计 Android使用的是JaCoCO覆盖率统计工具 jacoco 原理篇 必要知识储备或条件...: 项目源码 Android Studio开发环境 基本了解Android项目结构 基础adb操作 同样如果以上说的几个都不懂也行, 让开发帮忙做这些然后编个代码覆盖率统计的包给你测试, 测完把手机给开发取数据生成报告...注意每次测试完先返回手机桌面把程序退到后台等几秒让app自己生成日志文件 下面开始讲步骤 步骤1:拉取项目代码 git clone XXXXXXXXXXX 步骤2:使用Android Studio打开项目...步骤3:配置build.gradle apply plugin: 'com.android.application' apply plugin: 'jacoco' //加载代码覆盖库jacoco jacoco.../code_coverage.ec") 步骤11:生成覆盖率报告 点击Gradle窗口中的jacocoTestReport即可 ?

1.1K40

Android+jacoco实现代码覆盖率最正确的实现方式,没有之一!

它的作用是在安卓项目的代码覆盖率统计使用jacoco的离线插桩方式,在测试前先对文件进行插桩,然后生成插过桩的class或jar包,测试(单元测试、UI测试或者手工测试等)插过桩的classjar包后...,看你的使用场景需求,废话不多说。...4、在app模块下新建一个jacoco.gradle文件 这个jacoco.gradle文件,是提供给app模块build.gradle使用的,负责依赖jacoco插件,指定jacoco版本号,并且创建一个生成报告的任务...7、生成测试报告 1.installDebug 首先我们通过命令行安装app。...返回桌面,生成coverage.ec文件可能需要一点间哦(取决于你点击测试页面多少,测试越多,生成文件越大,所需时间可能多一点) 然后在Android Studio的Device File Explore

2.6K20

Android app 功能代码覆盖率--Jacoco(三)

前面两篇都是讲了jacoco配合Andorid app 代码覆盖的配置以及单人测试生成覆盖率测试报告,那遇到多人测试一个版本,要怎么合并,来评估这个版本的测试范围跟测试质量,这才比较实用;这个就是今天要说的内容...~其实也很简单,就是下载不同的jacoco 覆盖率配置文件,该文件已被修改过,可以合并多份.ec文件并对比生成一份报告; 操作步骤: 先下载jacoco覆盖率配置文件,地址如下:...执行报告生成,执行完毕以后,可在app/build/reports/jacoco/jacocoTestReport/html/目录下查看生成覆盖率测试报告,整体操作如图: ?...4.然后常规测试,就可从覆盖率报告去查看哪些类没覆盖,评估哪些功能没有测试,然后跟开发进行评估,除了功能测试,还可跟UI自动化配合一起测试; 说明: jacoco 的初始化,可以根据上面的gradle的...jacoco批处理程序进行报告生成,也可以根据Android app 功能代码覆盖率--Jacoco(二)配置的批处理命令进行生成; 以上,就是关于Android App 配合jacoco 生成覆盖率报告使用说明

1.3K20

jacoco查看各版本支持的最低jdk版本

集成测试框架:与主流的测试框架( JUnit 、 TestNG )无缝集成,可以直接在测试代码中使用 JaCoCo 进行代码覆盖率测试。...执行测试:运行项目的测试套件,生成测试结果。 3 . 生成覆盖率报告使用 JaCoCo 工具分析测试结果,生成代码覆盖率报告。 4 ....覆盖率报告 JaCoCo 生成覆盖率报告通常包括以下内容: 总体概览:显示整体代码覆盖率的概要信息,覆盖率、分支覆盖率等。...常用命令插件 命令行工具: JaCoCo 提供了 exec 命令 report 命令来执行代码覆盖率分析生成覆盖率报告。...Gradle 插件:使用 Gradle 构建项目,可以使用 jacoco 插件来集成 JaCoCo

7100

Android增量代码测试覆盖率工具

程序发生崩溃。 收到特定广播(一个自定义的广播,在执行生成覆盖率报告的task前发送)。 并在生成覆盖率报告之前把设备中的运行时数据同步到本地开发环境中。...在push之前生成覆盖率报告,同时对于覆盖率小于一定值(默认95%,可自定义)的提交提示并报警: 整体流程图 整个工具通过Gradle插件的形式部署到项目中,在项目编译阶段完成新增代码的查找注入,...程序发生崩溃。 收到特定广播(一个自定义的广播,在执行生成覆盖率报告的task前发送)。 并在生成覆盖率报告之前把设备中的运行时数据同步到本地开发环境中。...在push之前生成覆盖率报告,同时对于覆盖率小于一定值(默认95%,可自定义)的提交提示并报警: 整体流程图 整个工具通过Gradle插件的形式部署到项目中,在项目编译阶段完成新增代码的查找注入,在最终...程序发生崩溃。 收到特定广播(一个自定义的广播,在执行生成覆盖率报告的task前发送)。 并在生成覆盖率报告之前把设备中的运行时数据同步到本地开发环境中。

2.1K10

从精准化测试看ASM在Android中的强势插入-JaCoco初探

点击上方蓝字关注我,知识会给你力量 在Java技术栈,基本提到覆盖率,大家就会想到JaCoco「Java Code Coverage的缩写」,几乎所有的覆盖率项目,都是使用JaCoco,可想而知它的影响力有多大...https://docs.gradle.org/current/userguide/jacoco_plugin.html 但是这里的JaCoco是与单元测试配合使用的,与一般的业务测试场景不太一样,所以...使用全量报表 JaCoco默认的插桩方式是全部插桩,在Android项目中,要使用JaCoco的全量报表功能非常简单,因为JaCoco插件已经集成在Gradle中了,所以我们只需要开启JaCoco即可。...,然后写入Exec文件,等测试完毕后,把生成的Exec文件通过ADB pull到本地,再执行jacocoTestReport这个Task即可生成全量的JaCoco覆盖率报告。...JaCoco插桩原理 JaCocoAndroid只能使用Offline mode,它的实现机制其实很简单,我们反编译一下它插入的代码。

3.1K30

Android中根据coverage.ec文件生成报告

关于android中的代码覆盖率,可以参考我前几篇文章: Android手工测试代码覆盖率增强版 Android手工测试的代码覆盖率 Android UI自动化测试的代码覆盖率 官方生成代码覆盖率报告的流程...gradleandroid提供的插件生成代码覆盖率报告流程为首先在应用目录的生成coverage.ec文件(比如我们的应用package为com.wuba.wuxian.android_0504,...那么这个coverage.ec在测试完成时会在android系统的/data/data/com.wuba.wuxian.android_0504/目录下生成),然后pull到本地的项目根目录的build...根据coverage.ec生成报告 我们在前一篇文章中得到了手工测试的代码覆盖率文件coverage.ec,现在我们根据这个文件如何生成代码覆盖率报告呢?...jacocoTestReport 生成报告报告的存放目录为项目根目录下的 build/reports/jacoco/jacocoTestReport目录下: 发布者:全栈程序员栈长,转载请注明出处

70110

SonarQube测试覆盖率--Java

测试覆盖率报告测试执行报告是评估代码质量的重要指标。测试覆盖率报告告诉您测试用例涵盖的代码百分比。测试执行报告告诉您已运行哪些测试及其结果。 SonarQube本身不计算覆盖范围。...Java 测试覆盖率 SonarQube支持将测试覆盖率报告作为Java项目分析的一部分。 但是,SonarQube 不会自行生成覆盖率报告。相反,您必须设置第三方工具以在生成过程中生成报表。...report通常,您将创建一个特定的 Maven 配置文件,用于使用检测执行单元测试,并仅按需生成覆盖率报告。...在最基本的情况下,我们需要执行两个目标:允许在单元测试执行期间收集覆盖率信息,以及 ,使用在单元测试执行期间收集的数据生成报告。默认情况下,该工具会生成报表的 XML、HTML CSV 版本。...如果需要更改生成报告的目录,可以使用 Maven 的开关在命令行设置属性:-D mvn -Dsonar.coverage.jacoco.xmlReportPaths= ..

2.2K30

Android如何精准化测试?

前言 最近搞了一个基于jacoco统计Android代码覆盖率测试的功能,可以统计每天手工测试的代码覆盖率.自己也学习一下jacoco,陆陆续续搞了三天终于有点结果了....本文介绍仅仅在源码中加入少量代码就可以完成代码覆盖率测试....自动化执行 可以结合monkeyUI自动化,我简单写了个shell脚本.从编译app、启动app、app至于后台、自动展示jacoco报告 #!...报告地址:"${report_path} open -a "/Applications/Safari.app" ${report_path} 效果 macaca coverage生产报告 使用gradle...的jacocoTestReport也可以生产报告,也是大多人使用的方式,本文就不做介绍了,主要介绍使用macaca coverage方法. macaca coverage可以生成jacoco报告,不仅可以生成

63120

只懂黑盒测试也能学会的代码覆盖率及精准化测试

android 也是借鉴了这一整套的设计理念,android 的 runtime 其实是 dalvik 与 art。 当我们要统计代码覆盖率的时候,就需要在代码的执行路径加入探针分析。...不生成覆盖率 很多人都会使用 file 模式,但是 tcp server 模式才是最易用的。...离线插桩模式,适合 android覆盖率统计,需要借助于 maven、gradle 等构建工具的 instrument 指令。...\ -jar $project_root/bin/ApacheJMeter.jar #退出jmeter #生成覆盖率报告 java -jar $jacoco_cli_jar report jacoco.exec...通用测试数据导入的常见用途 将各种测试工具的测试报告转换为 sonarqube 支持的格式从而导入平台 将各种覆盖率工具的覆盖率报告转换为标准格式导入平台 根据需求对差异 diff 覆盖率进行定制,比如除了对新增代码做覆盖

1.1K20

JAVA代码覆盖率工具JaCoCo-踩坑篇

一、覆盖率踩过的坑 在项目中使用JaCoCo覆盖率的时候,也遇到过各种奇葩的问题,在这里列出来分享下,问题实际的项目关系密切,希望对有遇到过相似问题的童鞋有所启发。...1.1 覆盖率包在部分手机6.0安装失败 事情起因:在测试新功能,用打的覆盖率包,外包反馈部分手机6.0安装不了。...1.2 覆盖率包在部分4.X版本手机上生成ec文件失败 事情起因:在测试新功能,用打的覆盖率包,外包反馈部分4.X手机生成不了ec文件 问题重现:试了在自己的手机,华为mate8的6.0系统生成正常...1.3 覆盖率报告生成后看不到源码覆盖情况 源码类文件都正确指定了,为什么生成报告看不到源码覆盖? 解决方法: (1) 编译的时候debug="true" 这个一定要设置,比如 ?...二、覆盖率一些需要注意的地方 由于Android不能通过JVM停止后自动dump覆盖率数据,因此当Android应用进程不存在或停止的时候,覆盖率数据不会生成

7K60

安卓app功能或自动化测试覆盖率统计(干货进阶版)

在上篇文章,一文带你解决Android app手工测试或者自动化测试覆盖率统计(撸代码版),我们采用了instrumentation的方式去启动app,很多人会问,如果我们不用instrumentation...的插件,接着呢,我们去规定版本,然后去规定我们的覆盖文件的位置,接下来我们去告知下测试报告的位置。...,我的做法呢,是在设置中,增加一个按钮,生成测试覆盖率的 按钮来统一处理。...然后呢,我们去正常测试,最后呢,我们去点击我们的按钮。生成完毕后,如下。 ? 我们去在项目的目录下,我们去pull下来即可。...可以看到有测试报告,我们打开看下。 ? 这是最后的覆盖率测试的统计数据。 这里的数据呢,只是统计到了全量代码的,还有增量代码覆盖率统计,多个覆盖率文件的不同的如何进行组合。

1K10

教你使用 Jacoco 统计服务端代码覆盖率

前言 前面有一篇 文章 使用 Python + Coverage 来统计测试用例的代码覆盖率 Jacoco 针对 Java 语言的一款开源的覆盖率工具,可以嵌入到 Maven、Gradle 中,提供多种尺度的覆盖率计数器...接着,配置 Jacoco 插件及相关的 goal,使用 includes excludes 两个关键字设定包含或排除的类路径 比如:这里只统计 com.xingag.api.service 下面的类...:report 命令生成代码覆盖率报告 代码覆盖率报告目录在:..../target/site/jacoco ? 用浏览器打开统计报告文件夹中的 index.html 文件,可以很直观的查看单元测试覆盖率及对应测试类的具体覆盖范围 ? 4....最后 上面只是通过一个简单的例子展示了 Jacoco 统计单元测试代码覆盖率的过程 实际项目中,代码覆盖率只能为单元测试提供一个参考,考虑到开发效率,不能一味地追求高覆盖率;事实,高覆盖率不一定能保证没有缺陷

3.1K10

Android增量代码测试覆盖率工具

正常情况下,可以通过写单测来保证新增代码的覆盖率,在Android中可以参考《Android单元测试研究与实践》 。...生成代码的覆盖率报告,首先想到的就是JaCoCo,下面分别介绍一下JaCoCo的原理和我们所做的改造。...JDT vs ASM 在上面增量注入生成增量代码覆盖率报告都会去判断当前方法是否应该被处理。...程序发生崩溃。 收到特定广播(一个自定义的广播,在执行生成覆盖率报告的task前发送)。 并在生成覆盖率报告之前把设备中的运行时数据同步到本地开发环境中。...整体流程图 整个工具通过Gradle插件的形式部署到项目中,在项目编译阶段完成新增代码的查找注入,在最终push代码之前获取当前设备的运行时数据,然后生成覆盖率报告,并把覆盖率低于一定值(默认是95%

1.8K90

一文带你解决Android app手工测试或者自动化测试覆盖率统计(撸代码版)

1.手工测试覆盖率是多少? 2.UI自动化覆盖率是多少? 3.你怎么保证你覆盖了全部的场景?...接下来,我们一起去解密,如何统计app 代码覆盖率。 首先,我们要在安卓代码中引入我们的依赖。在我们待测app的build.gradle做如下配置,引入我们的jacoco。...")#覆盖率文件的路径 reportsDir = file("$buildDir/reports/jacoco")#测试报告路径 } 配置完毕后,Android studio自动去给我们加载包...如果我们经过手工测试, 出来一个这样的报告,我们就可以告诉我的覆盖率是多少。那么反过来,我们也会发现,原来我们的用例也有覆盖不全的地方,即使我们经过用例的评审的阶段,还会出现覆盖不到的地方。...本文介绍了Jacoco统计安卓app手工测试覆盖率的方法,这里没有做增量代码的覆盖率,没有做多人分工测试app,测试报告如何合并,如何启动不用Instrumentation直接启动app。

1.3K10
领券