2013-08-05 13 views
12

Sto provando a eseguire un singolo test di integrazione utilizzando il flag -Dtest.single di gradle. Ho aggiunto un altro set di fonti, src/integrationTest e ho inserito i test. Ho un compito test di integrazioneeseguire il test di integrazione singola con gradle

task integrationTests(type: Test) { 
    dependsOn 'assemble', 'integrationTestClasses'  
    testClassesDir = sourceSets.integrationTest.output.classesDir 
    classpath = sourceSets.integrationTest.runtimeClasspath 
} 

Questo funziona bene, ma se si tenta di eseguire un singolo test che mi dice che non riesco a trovare una prova di corrispondenza. Non voglio dover eseguire ogni test di integrazione ogni volta che ne scrivo uno nuovo. C'è un modo per fare questo?

risposta

11

La sintassi corretta è:

gradle testTaskName -DtestTaskName.single=...

In questo caso:

gradle integrationTest -DintegrationTest.single=...

+1

Grazie, Peter. Ha funzionato perfettamente –

+0

Quando provo questo, ottenere qualcosa di simile: '$ gradlew -Dtest.single = SingleTest: sottoprogetto: prova ... : buildSrc: Test fallito GUASTO: generazione non riuscita con un'eccezione. Cosa non ha funzionato: esecuzione non riuscita per l'attività ': test'. Impossibile trovare il test di corrispondenza per il modello: SingleTest' –

+0

Forse non hai una classe di test con quel nome? –

28

Dal Gradle 1.10 si può scrivere:

//select specific test method 
gradle test --tests org.gradle.SomeTest.someFeature 

//select specific test class 
gradle test --tests org.gradle.SomeTest 

//select all tests from package 
gradle test --tests org.gradle.internal* 

//select all ui test methods from integration tests by naming convention 
gradle test --tests *IntegTest*ui* 

//selecting tests from different test tasks 
gradle test --tests *UiTest integTest --tests *WebTest*ui 

Read more here http://www.gradle.org/docs/1.10/release-notes#executing-specific-tests-from-the-command-line

Problemi correlati