2013-08-09 8 views
16

Ho una sorgente di test di integrazione impostata in gradle e dipende dalle mie classi principali in fase di compilazione. Ho impostato che fino facendoImposta un set sorgente dipendente da un altro

integrationTestClasses.dependsOn 'classes' 

E 'questo il modo per farlo, o c'è un modo per le dipendenze di impostazione sulla fonte definisce così questo avviene automaticamente? Nel mio configurations blocco ho già

integrationTestCompile { extendsFrom testCompile } 
integrationTestRuntime { extendsFrom integrationTestCompile, testRuntime } 

risposta

23

Ciò che manca è:

dependencies { 
    integrationTestCompile sourceSets.main.output 
} 

Con questo in luogo, le relazioni tra attività dovrebbero essere stabilite automaticamente.

+0

Grazie, Peter. Darò una prova. –

+0

Ha funzionato, grazie. Se volessi dipendere dall'output principale e di test, devo solo dichiarare una dipendenza dal test poiché il test dipende già da main? Questo sembra essere il comportamento che sto vedendo ma volevo verificare. –

+0

Dipende da cosa * esattamente * intendi qui. 'sourceSets.test.output' non include' sourceSets.main.output'. –

1

È anche possibile stabilire la catena di dipendenze quando si definiscono i set di origine. Questo ha funzionato per impostare il "principale" sourceSet dipendere da un sourceSet "prodotti":

// Default sourceSets already created by the java plugin: src/main and src/test 
// Default content for each sourceSet: /java and /resources 
sourceSets { 
    // Adding src/generated 
    generated 
    // Setting src/main to depend on the dependencies and output of src/generated 
    main { 
     compileClasspath += generated.compileClasspath + generated.output 
    } 
} 

Lo stesso principio dovrebbe funzionare per impostare "integrationTest" dipendere "principale".

Problemi correlati