kotlin-dsl-samples icon indicating copy to clipboard operation
kotlin-dsl-samples copied to clipboard

sourceSets example complete with extendsFrom for configuration and compileClasspath inheritance

Open hmarggraff opened this issue 4 years ago • 0 comments

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:

  1. Place integration tests in a separate source directory src/itest/kotlin
  2. Make the classes from main sourceSet visible there via compileClasspath/runtimeClasspath
  3. Add a specific dependency for the integration tests
  4. 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 } }

hmarggraff avatar Apr 20 '20 22:04 hmarggraff