ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android 使用JaCoCo进行代码覆盖率检查2021最新版

2021-11-30 18:31:26  阅读:710  来源: 互联网

标签:kotlin gradle 2021 context Test Android 最新版 jacoco android


生成最后的报告,折腾了一天,记录一下,希望对大家有帮助。

环境(经测试没有发现版本的问题,不过这里还是贴出供参考)

Android Studio Arctic Fox | 2020.3.1 Patch 3

classpath 'com.android.tools.build:gradle:7.0.3'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20'

jacoco.gradle:

apply plugin:'jacoco'

jacoco{
    toolVersion = "0.8.7"
}

android {
    buildTypes {
        debug{
            testCoverageEnabled = true
        }
    }
}

主工程(或library)的build.gradle引入:

plugins {
    id 'com.android.application'
    id 'kotlin-android'

}

apply from: "jacoco.gradle"

android {...}
...

使用:

使用createDebugCoverageReport命令即可,报告位置如下

踩坑记录

  • 网上有很多自己保存.ec文件的,或者是 Unexpected SMAP line:错误、jacoco 0.8.7版本等问题的,经过反复测试,在上诉环境中已经不需要那么麻烦了。
  • 必须包含一个Test是对src目录的类进行测试的,否则是生成不了覆盖报告的。
  • kotlin代码,可能存在运行问题,可以用最简单的项目(可以参考下面的测试样例代码结构)进行对比发现问题。

测试样例代码结构:

Src:

MainActivity:只有onCreate方法,并且xml只有一个textview显示。
ShowActivity:只有onCreate方法,并且xml只有一个LinearLayout布局。

androidtest:

MainActivityTest:只有一个Test如下

@Test
fun jump() {
    val context: Context =
        InstrumentationRegistry.getInstrumentation().targetContext //获取Context上下文
    val intent = Intent(context, ShowActivity::class.java)
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    context.startActivity(intent)
}

标签:kotlin,gradle,2021,context,Test,Android,最新版,jacoco,android
来源: https://blog.csdn.net/u010663321/article/details/121639382

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有