Je souhaite ajouter des tests d'intégration à ma version Gradle (version 1.0). Ils doivent être exécutés séparément de mes tests habituels, car ils nécessitent le déploiement d’une application Web sur localhost (ils testent cette application Web). Les tests doivent pouvoir utiliser les classes définies dans mon ensemble source principal. Comment puis-je y arriver?
Réponses
Trop de publicités?Ce qui m'a pris un certain temps à comprendre et les ressources en ligne n'ont pas très bien. Donc je voulais documenter ma solution.
C'est un simple script de build gradle qui a un intTest jeu de la source en plus de la principale et la source de test de jeux:
apply plugin: "java"
sourceSets {
// Note that just declaring this sourceset creates two configurations.
intTest {
java {
compileClasspath += main.output
runtimeClasspath += main.output
}
}
}
configurations {
intTestCompile.extendsFrom testCompile
intTestRuntime.extendsFrom testRuntime
}
task intTest(type:Test){
description = "Run integration tests (located in src/intTest/...)."
testClassesDir = project.sourceSets.intTest.output.classesDir
classpath = project.sourceSets.intTest.runtimeClasspath
}
Mike Rylander
Points
1682
Voici comment je l'ai réalisé sans l'aide d' configurations{ }
.
apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_1_6
sourceSets {
integrationTest {
java {
srcDir 'src/integrationtest/java'
}
resources {
srcDir 'src/integrationtest/resources'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
}
task integrationTest(type: Test) {
description = "Runs Integration Tests"
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath += sourceSets.integrationTest.runtimeClasspath
}
Testé à l'aide d': Gradle 1.4 et 1.6 Gradle