• 关于Android studio中代码覆盖率


    目前Android studio中gradle已集成jacoco,默认无需手动加入jacoco插件即可生成报告。这里将添加jacoco插件的方法步骤写下,纯粹供学习以更了解gradle。
     
    一,gradle默认方式(无需手动添加jacoco插件):
     
    1,android studio新建项目时,会自动生成androidTest文件夹,同时文件夹下生成ApplicationTest。我们先在ApplicationTest里添加一些测试代码:
    添加测试代码
     
    2,Gradle默认支持生成代码覆盖率报告,我们需要做的只是在buil.gradle中设置testCoverageEnabled为true:
     
    3,然后打开cmd,进入项目文件夹根目录下,执行命令:gradle clean createDebugCoverageReport
     
    等待片刻,出现success
     
     
    4,此时在项目文件夹的appuild eportscoveragedebug的目录下就能看到代码覆盖率的报告,打开index.html就能看到详细报告了:
     
    二,手动添加jacoco插件生成
     
    1,同上第一步,在ApplicationTest里添加一些测试代码;
     
    2,build.gradle配置要复杂点:
     
    添加classpath
     
    添加jacoco插件
     
    设置testCoverageEnabled为true
     
    添加以下信息
     
    添加额外task
    //jacocoTestReport依赖于connectedAndroidTest task,所以在执行jacoco之前需要先执行connectedAndroidTest,也就是说需要连接测试机(模拟器or真机)
    task jacocoTestReport(type:JacocoReport,dependsOn:"connectedAndroidTest"){
    group = "Reporting"
    description = "Generate Jacoco coverage reports after running tests."
    reports{
    xml.enabled = false
    html.enabled = true
    csv.enabled = false
    }
    classDirectories = fileTree(
    dir : "$buildDir/intermediates/classes/debug",
    excludes : [
    '**/*Test.class',
    '**/R.class',
    '**/R$*.class',
    '**/BuildConfig.*',
    '**/Manifest*.*'
    ]
    )
    def coverageSourceDirs = ['src/main/java']
    additionalSourceDirs = files(coverageSourceDirs)
    sourceDirectories = files(coverageSourceDirs)
    additionalClassDirs = files(coverageSourceDirs)
    executionData = files("$buildDir/outputs/code-coverage/connected/coverage.ec")
    }
     
    3,然后打开cmd,进入项目文件夹根目录下,执行命令:gradle clean jacoco
     
    等待片刻,出现success
     
    4,此时在项目文件夹的appuild eportsjacocojacocoTestReporthtml的目录下就能看到代码覆盖率的报告,打开index.html就能看到详细报告了:
     
    到此两种方式都介绍完了,需要提的一点是,生成报告时需要打开模拟器或真机,但是使用部分真机时生成的覆盖率为0%,而用模拟器时正常,还不知道是什么原因。
     
    转:http://www.cnblogs.com/z-bin/p/5728011.html
  • 相关阅读:
    服务器建设问题
    JDBC --反射(二)
    Cookies
    http和https区别
    springboot常用注解
    线程池
    悲观锁和乐观锁
    java高并发下的数据安全
    idea解决mybatis逆向工程
    spring Cloud
  • 原文地址:https://www.cnblogs.com/tmlee/p/6654683.html
Copyright © 2020-2023  润新知