Android Instrumented Tests 覆盖范围不包括苍蝇 [英] Android Instrumented Tests coverage exclude flies
本文介绍了Android Instrumented Tests 覆盖范围不包括苍蝇的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用gradlew createDebugCoverageReport"运行我的测试.我的问题是覆盖率报告包括我拥有的每个源文件.我想排除一些文件.我将此添加到我的 build.gradle 中,但它不起作用:
I run my tests with "gradlew createDebugCoverageReport". My problem is that the coverage report includes every single source file I have. I want to exclude some files. I added this to my build.gradle but it did not work:
sourceSets {
androidTest {
java
{
exclude '**/TouchImageView.java'
}
}
}
推荐答案
你必须在 build.gradle 的开头添加 jacoco 插件
You have to add the jacoco plugin at the begining of your build.gradle
apply plugin: 'jacoco'
然后使用 testCoverageEnabled true
即启用覆盖率
Then enable the coverage with testCoverageEnabled true
i.e
buildTypes {
release {
...
}
debug {
testCoverageEnabled true
}
}
并创建任务jacocoTestReport
:
task jacocoTestReport(type:JacocoReport, dependsOn: "connectedDebugAndroidTest") {
group = "Reporting"
description = "Generate Jacoco coverage reports"
// exclude auto-generated classes and tests
def fileFilter = ['**/R.class',
'**/R$*.class',
'**/BuildConfig.*',
'**/Manifest*.*',
'**/*IScript*.*',
'android/**/*.*',
'**/*_Factory*',
'**/*_MembersInjector*',
'**/*Fake*']
def debugTree = fileTree(dir:
"${project.buildDir}/intermediates/classes/debug",
excludes: fileFilter)
def mainSrc = "${project.projectDir}/src/main/java"
sourceDirectories = files([mainSrc])
classDirectories = files([debugTree])
executionData = fileTree(dir: project.projectDir, includes:
['**/*.exec', '**/*.ec'])
reports {
xml.enabled = true
xml.destination = "${buildDir}/jacocoTestReport.xml"
csv.enabled = false
html.enabled = true
html.destination = "${buildDir}/reports/jacoco"
}
}
将排除项添加到 fileFilter
数组.然后运行报告:
Add your exclusions to fileFilter
array.
Then run the report:
$ gradle jacocoTestReport
这篇关于Android Instrumented Tests 覆盖范围不包括苍蝇的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文