MinimalBible/app-test/build.gradle

50 lines
1.6 KiB
Groovy
Raw Normal View History

apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'jacoco'
def androidModule = project(':app')
2014-11-17 14:09:44 -05:00
def firstVariant = androidModule.android.applicationVariants.toList().first()
dependencies {
compile androidModule
2014-11-17 14:09:44 -05:00
testCompile firstVariant.javaCompile.classpath
testCompile firstVariant.javaCompile.outputs.files
testCompile files(androidModule.plugins.findPlugin("com.android.application").getBootClasspath())
testCompile 'junit:junit:4.+'
2014-11-17 14:09:44 -05:00
testCompile 'org.robolectric:robolectric:+'
}
jacocoTestReport {
/*
Alright, setting up Jacoco the right way is massively confusing.
Normally, you'd use something like additionalClassDirs to add the folders you need.
However, we want to exclude the android/ folder, and likely will need something else
in the future. In order to do this though, we need the doFirst block. See SO here:
http://stackoverflow.com/a/17411305/1454178
Additionally, to properly exclude, we need to run that code outside the doFirst block.
No clue why this is, but please don't change this without extensive testing.
*/
def jacocoExcludes = [
"android/**/*"
]
firstVariant.javaCompile.exclude(jacocoExcludes).outputs.files
doFirst {
sourceDirectories = files(androidModule.android.sourceSets.main.java.srcDirs)
classDirectories = firstVariant.javaCompile.outputs.files
}
// Back to your regularly scheduled Jacoco
dependsOn test
reports {
xml.enabled true
csv.enabled false
html.destination "${buildDir}/jacocoHtml"
}
}