Adicionando um conjunto de testes adicional ao Gradle
Eu estou tentando adicionar Gradle (1.4) para um projeto existente que tem vários conjuntos de teste. O teste unitário padrão localizado emsrc/test/java
correu com sucesso, mas estou tendo problemas para configurar uma tarefa para executar o teste JUnit localizado emsrc/integration-test/java
.
Quando eu corrogradle intTest
Eu recebo várioscannot find symbol
erros para classes emsrc/main
. Isso me leva a acreditar que as dependências não estão configuradas corretamente. Como faço para configurarintTest
para que ele execute meus testes de integração do 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
}
Detalhes: Gradle 1.4
Solução: Eu não tinha definido o classpath de compilação para o conjunto de fontes de teste de integração (veja abaixo). No meu código eu definir o caminho de classe de compilação parasourceSets.test.runtimeClasspath
para que eu não tenha as dependências duplicadas para "integrationCompile"
sourceSets {
integrationTest {
java {
srcDir 'src/integration-test/java'
}
resources {
srcDir 'src/integration-test/resources'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
}