Sto tentando di aggiungere Gradle (1.4) a un progetto esistente con più suite di test. Il test unitario standard situato in src/test/java
ha funzionato correttamente, ma sto riscontrando problemi nell'impostare un'attività per eseguire il test JUnit situato in src/integration-test/java
.Aggiunta di una suite di test aggiuntiva a Gradle
Quando corro gradle intTest
Ottengo più errori cannot find symbol
per le classi in src/main
. Questo mi porta a credere che le dipendenze non siano impostate correttamente. Come posso impostare intTest
in modo che esegua i miei test di integrazione JUnit?
build.gradle
apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_1_6
sourceSets {
integration {
java {
srcDir 'src/integration-test/java'
}
resources {
srcDir 'src/integration-test/resources'
}
}
}
dependencies {
compile(group: 'org.springframework', name: 'spring', version: '3.0.7')
testCompile(group: 'junit', name: 'junit', version: '4.+')
testCompile(group: 'org.hamcrest', name: 'hamcrest-all', version: '1.+')
testCompile(group: 'org.mockito', name: 'mockito-all', version: '1.+')
testCompile(group: 'org.springframework', name: 'spring-test', version: '3.0.7.RELEASE')
integrationCompile(group: 'junit', name: 'junit', version: '4.+')
integrationCompile(group: 'org.hamcrest', name: 'hamcrest-all', version: '1.+')
integrationCompile(group: 'org.mockito', name: 'mockito-all', version: '1.+')
integrationCompile(group: 'org.springframework', name: 'spring-test', version: '3.0.7.RELEASE')
}
task intTest(type: Test) {
testClassesDir = sourceSets.integration.output.classesDir
classpath += sourceSets.integration.runtimeClasspath
}
Dettagli: Gradle 1,4
Soluzione: non avevo impostare il percorso di classe di compilazione per il set fonte test di integrazione (vedi sotto) . Nel mio codice che ho io impostare il percorso di classe di compilazione a sourceSets.test.runtimeClasspath
in modo che non ho le dipendenze duplicate per "integrationCompile"
sourceSets {
integrationTest {
java {
srcDir 'src/integration-test/java'
}
resources {
srcDir 'src/integration-test/resources'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
}
Eventuali duplicati di [Come faccio ad aggiungere un nuovo sourceset a Gradle?] (Http://stackoverflow.com/questions/11581419/how-do-i-add-a-new-sourceset-to- gradle) –