My team wanted to use Gradle to build our Grails project. We had some trouble with version compatibility problems between Grails and the Grails build plugin, though. Instead of using the plugin, we tried writing some code that called the ‘grails’ command directly, but that caused problems with the CI server because it required that the correct version of Grails be preinstalled on all build servers and exist in a known location. I decided to try my hand at writing a simpler Grails build plugin and this is what I came up with. It doesn’t require Grails to be pre-installed on the machine and, since it just executes the ‘grails’ command, it works with any version.
Posts Tagged ‘Gradle’
April 6th, 2012
5 Comments »
January 11th, 2011
3 Comments »
* Update February 13th, 2012: Thanks to Ben Ripkens for updates to match the new Gradle API.
While searching online, I found many suggestions for how to add a new test target to a Gradle script. Most of them were wrong and others didn’t properly separate the integration test target from standard targets. After not finding a solution, I came up with one on my own.
This example sets up integration tests for Groovy .
Create a source set
This will separate the integration test code from other code, allowing it to be built separately.
- The classpath in the example gives integration tests access to all application and test classes
- The source location will be src/integrationTest/groovy
sourceSets {
integrationTest {
compileClasspath = sourceSets.main.output + configurations.testRuntime
runtimeClasspath = output + sourceSets.main.output + configurations.testRuntime
groovy {
srcDir 'src/integrationTest/groovy'
}
}
}
Add the target
task integrationTest(type: Test) {
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
}