Synesso
Synesso

Reputation: 38988

Custom scala test path in gradle 1.2

I'm new to Gradle and it still seems a little magic to me.

In my project we do not use the default sourceDirs because we separate the different kinds of tests:

configure(subprojects) {
    sourceSets {
        test {
            java.srcDir('src/test/unit/java') 
            resources.srcDir('src/test/unit/resources')
        }
        integrationTest {
            java.srcDir('src/test/integration/java') 
            resources.srcDir('src/test/integration/resources')
        }
        concurrencyTest {
            java.srcDir('src/test/concurrency/java') 
            resources.srcDir('src/test/concurrency/resources')
        }
        componentTest {
            java.srcDir('src/test/component/java') 
            resources.srcDir('src/test/component/resources')
        }
    }
}   

I'm trying to configure a scala test source directory. My attempt:

apply plugin: 'scala'

configure(subprojects) {
    sourceSets {
        test {
            java.srcDir('src/test/unit/java') 
            scala.srcDir('src/test/unit/scala')
            resources.srcDir('src/test/unit/resources')
        }
 ...

The result:

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\projects\...\build.gradle' line: 109
# note, this is the line "sourceSets {"

* What went wrong:
A problem occurred evaluating root project 'X'.
> Could not find method sourceSets() for arguments [build_5ft63n6d7svimaibmkfq56rbrk$_run_closure4_closure18@573ed6c3] on root project 'X'.

I've tried a few other variants but cannot get it to work. Can someone help please?

Upvotes: 0

Views: 415

Answers (1)

Peter Niederwieser
Peter Niederwieser

Reputation: 123960

The sourceSets extension is added by language plugins like scala, but you didn't apply the scala plugin to the subprojects. Hence the error.

PS: Instead of configure(subprojects) { ... }, you can just use subprojects { ... }.

Upvotes: 1

Related Questions