118 votes

Comment ajouter un nouveau jeu de sources à Gradle?

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?

136voto

Spina Points 2769

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
}

35voto

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X