2015-05-17 28 views
5

Durante il test con Gradle, mi piacerebbe mostrare flussi standard sulla console solo quando eseguo una serie specifica di test con l'opzione --tests.Test gradli: mostra i flussi standard solo con test specifici

Lasciatemi elaborare. Su build.gradle Ho

test { 
    testLogging { 
     //showStandardStreams = true 
    } 
} 

Di solito, quando corro la mia intera suite di test, non mi piace avere l'output della console dai test. Ma quando sto lavorando ad un test specifico, è molto utile avere l'output della console, quindi vado avanti e decommentare quella riga prima di eseguire quel test con gradle test --tests *name.

Mi piacerebbe sapere se c'è un modo automatico per farlo.

MODIFICA: Lasciatemi chiarire. Mi piacerebbe avere l'uscita della console quando corro gradle test --tests *name, ma non quando corro gradle test.

risposta

3

per ottenere l'output della console su alcune piste per tutte le prove, si potrebbe fornire un parametro aggiuntivo (-Poutput) sulla riga di comando:

gradle test --tests *name -Poutput

test { 
    onOutput { descriptor, event -> 
     if (project.hasProperty('output')) { 
      logger.lifecycle(event.message) 
     } 
    } 
} 

Per ottenere l'output della console su un test specifico solo:

test { 
    onOutput { descriptor, event -> 
     if (descriptor.name=='YOUR_TEST_METHOD_NAME' && 
       descriptor.className=='YOUR_PACKAGE_QUALIFIED_CLASS_NAME') { 
      logger.lifecycle(event.message) 
     } 
    } 
} 

Vedi TestDescriptor e Test

+0

Questo è utile. Tuttavia, non mi stai davvero dando la soluzione che voglio. Si prega di consultare la mia domanda modificata. Grazie! – emisilva

+0

Ho modificato la mia risposta. – tnabeel

+0

non funziona con gradle run o gradle run --tests * nome http://codepad.org/bdzJya6I – emisilva

1

Per riferimento, sto usando un approccio alternativo utilizzando leggendo il flag della riga di comando --info

test { 
    if (project.gradle.startParameter.logLevel == LogLevel.INFO) { 
     testLogging.showStandardStreams = true 
     testLogging.exceptionFormat = 'full' 
    } 
} 

Così durante l'esecuzione gradle test --info, vedrò i dettagli più Gradle includint uscita di test. Con questa configurazione, vedo altre informazioni gradle come le versioni delle dipendenze, che possono essere utili.

Tuttavia, penso che la risposta sopra consenta un maggiore controllo sull'uscita, ad es. :

onOutput { descriptor, event -> 
    if (project.hasProperty('output')) { 
     def withoutLastLineFeed = event.message.substring(0, event.message.length() - 1) 
     logger.lifecycle("{} ===> {}", 
         event.destination, 
         withoutLastLineFeed) 
    } 
} 
Problemi correlati