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

上一篇 / 下一篇  2018-04-26 13:29:54 / 个人分类:覆盖率测试

  为程序编写单元测试对于我一个境界比较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 了!

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2019-05-13  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 10824
  • 日志数: 25
  • 建立时间: 2017-07-24
  • 更新时间: 2018-06-08

RSS订阅

Open Toolbar