Skip to content

Commit 95315f1

Browse files
authored
Add excludes to JunitJacoco extension (#37)
1 parent 2017779 commit 95315f1

File tree

4 files changed

+43
-8
lines changed

4 files changed

+43
-8
lines changed

src/main/groovy/com/vanniktech/android/junit/jacoco/Generation.groovy

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class Generation implements Plugin<Project> {
4242
return false
4343
}
4444

45-
private static void addJacocoJava(final Project subProject, final extension) {
45+
private static void addJacocoJava(final Project subProject, final JunitJacocoExtension extension) {
4646
subProject.plugins.apply('jacoco')
4747

4848
subProject.jacoco {
@@ -62,7 +62,7 @@ class Generation implements Plugin<Project> {
6262

6363
classDirectories = subProject.fileTree(
6464
dir: 'build/classes/main/',
65-
excludes: getExcludes()
65+
excludes: getExcludes(extension)
6666
)
6767

6868
final def coverageSourceDirs = [
@@ -77,7 +77,7 @@ class Generation implements Plugin<Project> {
7777
subProject.check.dependsOn 'jacocoTestReport'
7878
}
7979

80-
private static void addJacocoAndroid(final Project subProject, final extension) {
80+
private static void addJacocoAndroid(final Project subProject, final JunitJacocoExtension extension) {
8181
subProject.plugins.apply('jacoco')
8282

8383
subProject.jacoco {
@@ -120,7 +120,7 @@ class Generation implements Plugin<Project> {
120120

121121
classDirectories = subProject.fileTree(
122122
dir: "${subProject.buildDir}/intermediates/classes/${sourcePath}",
123-
excludes: getExcludes()
123+
excludes: getExcludes(extension)
124124
)
125125

126126
final def coverageSourceDirs = [
@@ -142,8 +142,8 @@ class Generation implements Plugin<Project> {
142142
}
143143
}
144144

145-
private static ArrayList<String> getExcludes() {
146-
['**/R.class',
145+
static List<String> getExcludes(final JunitJacocoExtension extension) {
146+
extension.excludes == null ? ['**/R.class',
147147
'**/R$*.class',
148148
'**/*$$*',
149149
'**/*$ViewInjector*.*',
@@ -154,7 +154,7 @@ class Generation implements Plugin<Project> {
154154
'**/*Dagger*.*', // Dagger auto-generated code.
155155
'**/*MembersInjector*.*', // Dagger auto-generated code.
156156
'**/*_Provide*Factory*.*' // Dagger auto-generated code.
157-
]
157+
] : extension.excludes
158158
}
159159

160160
protected static boolean isAndroidProject(final Project project) {

src/main/groovy/com/vanniktech/android/junit/jacoco/JunitJacocoExtension.groovy

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,10 @@ class JunitJacocoExtension {
1616
* @since 0.3.0
1717
*/
1818
String[] ignoreProjects = []
19+
20+
/**
21+
* Patterns of files that should be ignored
22+
* @since 0.5.0
23+
*/
24+
List<String> excludes = null
1925
}

src/test/groovy/com/vanniktech/android/junit/jacoco/GenerationTest.groovy

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,4 +267,32 @@ public class GenerationTest {
267267

268268
return false
269269
}
270+
271+
@Test
272+
public void getExcludesDefault() {
273+
final def excludes = Generation.getExcludes(new JunitJacocoExtension())
274+
275+
assert excludes.contains('**/R.class')
276+
assert excludes.contains('**/R$*.class')
277+
assert excludes.contains('**/*$$*')
278+
assert excludes.contains('**/*$ViewInjector*.*')
279+
assert excludes.contains('**/*$ViewBinder*.*')
280+
assert excludes.contains('**/BuildConfig.*')
281+
assert excludes.contains('**/Manifest*.*')
282+
assert excludes.contains('**/*$Lambda$*.*')
283+
assert excludes.contains('**/*Dagger*.*')
284+
assert excludes.contains('**/*MembersInjector*.*')
285+
assert excludes.contains('**/*_Provide*Factory*.*')
286+
}
287+
288+
@Test
289+
public void getExcludesCustom() {
290+
final def extension = new JunitJacocoExtension()
291+
extension.excludes = new ArrayList<>()
292+
extension.excludes.add("**/*.java")
293+
294+
final def excludes = Generation.getExcludes(extension)
295+
296+
assert excludes == extension.excludes
297+
}
270298
}

src/test/groovy/com/vanniktech/android/junit/jacoco/JunitJacocoExtensionTest.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ public class JunitJacocoExtensionTest {
99

1010
assert extension.jacocoVersion == '0.7.2.201409121644'
1111
assert extension.ignoreProjects.size() == 0
12+
assert extension.excludes == null
1213
}
13-
}
14+
}

0 commit comments

Comments
 (0)