我有一个jacoco项目,我希望能够过滤某些类和/或包.
我已阅读以下文档:
官方jacoco网站: http ://www.eclemma.org/jacoco/index.html
关于gradle的官方jacoco文档: https ://gradle.org/docs/current/userguide/jacoco_plugin.html
官方jacoco Github问题,致力于报道:
https
://github.com/jacoco/jacoco/wiki/FilteringOptions https://github.com/jacoco/jacoco/issues/14
JaCoCo&Gradle - 过滤选项(无答案)
使用Sonarrunner和Gradle(不使用声纳)从Jacoco报告中排除软件包
JaCoCo - 从报告中排除JSP(它似乎适用于maven,我使用gradle)
Maven Jacoco配置 - 从报告中排除类/包不工作(它似乎适用于maven,我使用gradle)
JaCoCo gradle插件排除(无法使其工作)
Gradle Jacoco - 覆盖率报告包括配置中排除的类(似乎非常接近,它使用doFirst,对我不起作用)
apply plugin: 'java'
apply plugin: 'jacoco'
buildscript {
repositories {
mavenCentral()
jcenter()
}
} …Run Code Online (Sandbox Code Playgroud) 自从'com.android.tools.build:gradle:1.1.0'我将大部分java测试代码androidTest移到该test文件夹后发布,因为JVM测试要快得多.但我不能移动所有测试.我真的需要设备测试,因为有些ContentProvider东西.
在开始迁移之前,我已经有100%的代码覆盖率.当我正在运行jacoco代码覆盖时,我得到40%的androidTest文件夹和71%的test文件夹.我的代码经过100%测试,但我没有报告证明这一点.
有没有办法将两份报告合并?我找到了JacocoMerge,但无法让它工作.
这是androidTest文件夹的输出:build/outputs/reports/coverage/debug/index.html
这里是
使用此gradle任务生成的test文件夹
的输出build/reports/jacoco/generateJacocoTestReports/html/index.html:
def coverageSourceDirs = [
'../library/src/main/java'
]
task generateJacocoTestReports(type: JacocoReport, dependsOn: "test") {
group = "Reporting"
description = 'Generate Jacoco Robolectric unit test coverage reports'
classDirectories = fileTree(
dir: '../library/build/intermediates/classes/debug',
excludes: ['**//*R.class',
'**//*R$*.class',
'***/*//*$ViewInjector*.*',
'**//*BuildConfig.*',
'**//*Manifest*.*']
)
sourceDirectories = files(coverageSourceDirs)
additionalSourceDirs = files(coverageSourceDirs)
executionData = files('../library/build/jacoco/testDebug.exec')
}
Run Code Online (Sandbox Code Playgroud)