Hinzufügen einer zusätzlichen Testsuite zu Gradle

Ich versuche, Gradle (1.4) zu einem vorhandenen Projekt hinzuzufügen, das mehrere Testsuiten enthält. Der Standard Unit Test befindet sich insrc/test/java wurde erfolgreich ausgeführt, aber ich habe Probleme beim Einrichten einer Task zum Ausführen des JUnit-Tests insrc/integration-test/java.

Wenn ich rennegradle intTest Ich bekomme mehrerecannot find symbol Fehler für Klassen insrc/main. Dies lässt mich glauben, dass die Abhängigkeiten nicht richtig eingerichtet sind. Wie richte ich ein?intTest damit es meine JUnit-Integrationstests ausführt?

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
}

Einzelheiten: Gradle 1.4

Lösung: Ich hatte den Kompilierungsklassenpfad für den Integrationstest-Quellensatz nicht festgelegt (siehe unten). In meinem I-Code setze ich den Kompilierungsklassenpfad aufsourceSets.test.runtimeClasspath damit ich nicht die doppelten Abhängigkeiten für "integrationCompile" habe

sourceSets {
    integrationTest {
        java {
            srcDir 'src/integration-test/java'
        }
        resources {
            srcDir 'src/integration-test/resources'
        }
        compileClasspath += sourceSets.main.runtimeClasspath
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage