android studio代码覆盖率,Android Studio中的Jacoco代码覆盖范围

使用Jacoco和Android Flavors的测试覆盖率报告:

让我们考虑一下名为“免费”和“付费”的口味

Step1 :在项目模块目录(默认为应用程序)中创建文件jacoco.gradle,其中存在build.gradle,它应该在build.gradle文件旁边 . 目录结构如下图所示

app> jacoco.gradle

Step 2 :在我们在步骤1中创建的文件中粘贴下面的代码,代码有自解释的注释要理解

apply plugin: 'jacoco'

jacoco {

toolVersion = "0.7.5.201505241946"

}

project.afterEvaluate {

// Grab all build types and product flavors

def buildTypes = android.buildTypes.collect { type ->

type.name

}

def productFlavors = android.productFlavors.collect { flavor ->

flavor.name

}

// When no product flavors defined, use empty

if (!productFlavors) productFlavors.add('')

//iterate over the flavors

productFlavors.each {

productFlavorName ->

//iterate over build types like debug,release,prod etc.

buildTypes.each {

buildTypeName ->

//sourceName — e.g. freeDebug ,sourcePath — e.g. free/debug

def sourceName, sourcePath

if (!productFlavorName) {

sourceName = sourcePath = "${buildTypeName}"

} else {

sourceName = "${productFlavorName}${buildTypeName.capitalize()}"

sourcePath = "${productFlavorName}/${buildTypeName}"

}

// testTaskName —  e.g. testFreeDebugtest task that the coverage task depends on,

def testTaskName = "test${sourceName.capitalize()}UnitTest"

// Create coverage task of form 'testFlavorTypeCoverage' depending on 'testFlavorTypeUnitTest'

task "${testTaskName}Coverage" (type:JacocoReport, dependsOn: "$testTaskName") {

group = "Reporting"

description = "Generate Jacoco coverage reports on the ${sourceName.capitalize()} build."

classDirectories = fileTree(

dir: "${project.buildDir}/intermediates/classes/${sourcePath}",

excludes: [

'**/R.class',

'**/R$*.class',

'**/*$ViewInjector*.*',

'**/*$ViewBinder*.*',

'**/BuildConfig.*',

'**/Manifest*.*'

]

)

def coverageSourceDirs = [

"src/main/java",

"src/$productFlavorName/java",

"src/$buildTypeName/java"

]

additionalSourceDirs = files(coverageSourceDirs)

sourceDirectories = files(coverageSourceDirs)

executionData = files("${project.buildDir}/jacoco/${testTaskName}.exec")

reports {

//enables and disable the type of file you need

xml.enabled = false

html.enabled = true

}

}

}

}

}

步骤3:在android studio终端下面运行命令来构建应用程序

./gradlew清洁组装

步骤4:on build sucessfull,运行以下命令生成测试报告(将字符串“testFreeDebugUnitTestCoverage”更改为您的特定flavor / build类型,例如对于付费版本命令将为./gradlew testPaidDebugUnitTestCoverage)

./gradlew testFreeDebugUnitTestCoverage

Step 5 :

它应该在终端给出成功消息,现在转到目录

>app > build > reports >jacoco >${testName} >look for html or xml file report file

Step 6: 现在您可以在浏览器中打开并查看html测试覆盖率文件

最好的运气!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值