kotlin-dsl-samples
kotlin-dsl-samples copied to clipboard
sourceSets example complete with extendsFrom for configuration and compileClasspath inheritance
I have not found a way to translate the groovy definition of a source Set for integration tests into the Kotlin DSL.
What I want:
- Place integration tests in a separate source directory src/itest/kotlin
- Make the classes from main sourceSet visible there via compileClasspath/runtimeClasspath
- Add a specific dependency for the integration tests
- Create a task that runs the integration tests
The groovy example is taken from here: https://www.petrikainulainen.net/programming/gradle/getting-started-with-gradle-integration-testing/
Groovy: sourceSets { integrationTest { java { compileClasspath += main.output + test.output runtimeClasspath += main.output + test.output srcDir file('src/integration-test/java') } resources.srcDir file('src/integration-test/resources') } } configurations { integrationTestCompile.extendsFrom testCompile integrationTestRuntime.extendsFrom testRuntime } dependencies { compile 'log4j:log4j:1.2.17' testCompile 'junit:junit:4.11' integrationTestCompile 'org.assertj:assertj-core:3.0.0' } task integrationTest(type: Test) { testClassesDirs = sourceSets.integrationTest.output.classesDirs classpath = sourceSets.integrationTest.runtimeClasspath outputs.upToDateWhen { false } }