jruby-gradle-storm-plugin/gradle/integration-test.gradle

73 lines
3.0 KiB
Groovy

import groovy.json.JsonOutput
apply plugin: 'org.ysb33r.gradletest'
configurations {
integrationTestCompile.extendsFrom testCompile, compile
integrationTestRuntime.extendsFrom testRuntime, integrationTestCompile
}
sourceSets {
integrationTest {
groovy {
srcDir file("${projectDir}/src/integTest/groovy")
}
compileClasspath = sourceSets.main.output + configurations.integrationTestCompile
runtimeClasspath = output + compileClasspath + configurations.integrationTestRuntime
}
}
task prepareGradleTestKitClasspath {
group 'Build Setup'
description 'Prepare the plugin classpath until TestKit supports it more natively'
File outputDir = file("$buildDir/$name")
inputs.files sourceSets.main.runtimeClasspath
outputs.dir outputDir
doLast {
outputDir.mkdirs()
List<String> files = sourceSets.main.runtimeClasspath.files.collect { File f -> f.absolutePath }
file("$outputDir/plugin-classpath.json").text = JsonOutput.toJson(files)
}
}
task integrationTest(type: Test) {
group 'Verification'
description 'Run the TestKit-based integration tests'
dependsOn prepareGradleTestKitClasspath, test, jar
classpath = sourceSets.integrationTest.runtimeClasspath
testClassesDir = sourceSets.integrationTest.output.classesDir
testLogging {
showStandardStreams = true
exceptionFormat "full"
}
}
check.dependsOn integrationTest
gradleTest {
versions '2.0', '2.2', '2.4', '2.6'
dependsOn test, integrationTest, jar
}
dependencies {
/* Without pruning the groovy-all dependency from this file list, we end up
* with two groovys running around and this exception at runtime:
* groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.3.10 and you are trying to load version 2.3.3
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$DefaultModuleListener.onModule(MetaClassRegistryImpl.java:509)
at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:77)
at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromMetaInf(ExtensionModuleScanner.java:71)
at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:53)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:110)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:71)
at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:33)
*/
integrationTestCompile files(gradleTestKit().resolve().findAll { File f ->
!f.name.matches(/groovy-all-(.*).jar/)
})
/* add our TestKit classpath to our test runtime so we can find it again */
integrationTestRuntime files(prepareGradleTestKitClasspath)
}