sourceSets { integTest { compileClasspath += main.output + test.output runtimeClasspath += main.output + test.output } } configurations { integTestCompile.extendsFrom testCompile integTestRuntime.extendsFrom testRuntime } task integTest(type: Test) { shouldRunAfter 'test' testClassesDir = sourceSets.integTest.output.classesDir classpath = sourceSets.integTest.runtimeClasspath } check.dependsOn(integTest) plugins.withType(org.gradle.plugins.ide.idea.IdeaPlugin) { idea { module { testSourceDirs += sourceSets.integTest.groovy.srcDirs testSourceDirs += sourceSets.integTest.resources.srcDirs scopes.TEST.plus.add(configurations.integTestCompile) scopes.TEST.plus.add(configurations.integTestRuntime) } } } task createClasspathManifest { def outputDir = file("$buildDir/$name") inputs.files sourceSets.main.runtimeClasspath outputs.dir outputDir doLast { outputDir.mkdirs() file("$outputDir/plugin-classpath.txt").text = sourceSets.main.runtimeClasspath.join("\n") } } dependencies { integTestRuntime files(createClasspathManifest) }