forked from heremaps/msdkui-android
-
Notifications
You must be signed in to change notification settings - Fork 0
/
coverage.gradle
68 lines (62 loc) · 2.5 KB
/
coverage.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
apply plugin: "jacoco"
jacoco {
toolVersion = "0.8.1"
}
android {
testOptions {
unitTests.all {
jacoco {
// Fix for broken coverage with the current JaCoCo version and Robolectric, for details see:
// https://github.com/robolectric/robolectric/issues/2230
includeNoLocationClasses = true
}
}
}
}
/*
* Copyright (C) 2017-2019 HERE Europe B.V.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Based on
// http://chrisjenx.com/gradle-robolectric-jacoco-dagger/
// https://medium.com/@rafael_toledo/setting-up-an-unified-coverage-report-in-android-with-jacoco-robolectric-and
// -espresso-ffe239aaf3fa#.5q5jv478y
task jacocoTestDebugReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') {
group = "Reporting"
description = "Run the unit tests and generate Jacoco coverage reports."
reports {
xml.enabled = true
html.enabled = true
}
def fileFilter = ['**/R.class',
'**/R$*.class',
'**/BuildConfig.*',
'**/Manifest*.*',
'**/*Test*.*',
'android/**/*.*',
'**/*_MembersInjector.class',
'**/*_ViewBinding.class',
'**/*_Factory.class',
'**/Dagger*Component.class', // covers component implementations
'**/Dagger*Component$Builder.class', // covers component builders
'**/*Module_*Factory.class',
'**/routing/ThemeUtil.class',
'**/routing/Utils.class',
'**/routing/ToolkitButton.class']
def debugTree = fileTree(dir: "${buildDir}/intermediates/javac/debug", excludes: fileFilter)
def mainSrc = "${project.projectDir}/src/main/java"
sourceDirectories = files([mainSrc])
classDirectories = files([debugTree])
executionData = files("${buildDir}/jacoco/testDebugUnitTest.exec")
}