统计 Android 单元测试代码覆盖率

发表于:2018-4-26 14:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51testing软件测试网采编

  为程序编写单元测试对于我一个境界比较low的程序员来说,简直就是噩梦,但是不得承认,为项目写测试是个非常正确、必要的工作,尤其是当项目越来越大,代码越来越多,测试代码可以及时检查出一次改动所带来的影响。
  单元测试覆盖率可以从一方面检查测试的质量,这个数据也是 Boss 最想看见的,而较高的覆盖率是 Boss 最希望看见的。Java项目有个很好的工具 :jacoco,可以快速的统计处 Junit 测试代码的覆盖率,并能生成详细的报告,具体方法,网上可以找出很多。本文只讨论 Android 上的情况
  Android 提供了一很方便的方法来统计单元测试覆盖率,很简单,也许是搜索的姿势不对,度娘愣是不告诉我,这时有个网速碉堡的 VPN 是件多么爽的事!谷歌一下,你就知道!在这里和这里找到了方法,总结下:
  环境
  Android Studio 1.4
  配置
  build.gradle 文件 android节点下设置 testCoverageEnabled 属性和 jacoco ,如下所示:
  buildTypes {
          release {
              minifyEnabled false
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }
          debug {
              testCoverageEnabled = true
          }
      }
      jacoco {
          version "0.7.4.201502262128"
      }
  这里是 Module app 下的 build.gradle 文件所有内容:
  apply plugin: 'com.android.application'
  android {
      compileSdkVersion 21
      buildToolsVersion "22.0.1"
      defaultConfig {
          applicationId "com.coderpage.coveragetest"
          minSdkVersion 9
          targetSdkVersion 21
          versionCode 1
          versionName "1.0"
      }
      buildTypes {
          release {
              minifyEnabled false
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }
          debug {
              testCoverageEnabled = true
          }
      }
      jacoco {
          version "0.7.4.201502262128"
      }
  }
  dependencies {
      compile fileTree(dir: 'libs', include: ['*.jar'])
      testCompile 'junit:junit:4.12'
      compile 'com.android.support:appcompat-v7:21.0.3'
  }
  生成覆盖率报告
  $ ./gradlew createDebugCoverageReport
  在 ${builddir}/reports/coverage/debug/index.html 就会出现测试覆盖率报告了
  遇到的坑
  因为开始用的是 gradle 1.3.0 ,运行脚本命令的时候出现了错误:
  Task ‘createDebugCoverageReport’ not found in root project
  在 这里 找到了原因,在 gradle 1.3.0 版本,移除了 createDebugCoverageReport Task,把 gradle 升级一下版本到 gradle 1.3.1 就 OK 了!



上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号