2015-05-17 13 views
5

Podczas testów z Gradle, chciałbym pokazać standardowe strumienie na konsoli tylko po uruchomieniu określonego podzbioru testów z opcją --tests.Test Gradle: pokaż strumienie standardowe tylko z konkretnymi testami

Pozwolę sobie rozwinąć. Na build.gradle mam

test { 
    testLogging { 
     //showStandardStreams = true 
    } 
} 

Zazwyczaj, gdy uruchomię mój cały zestaw testów, nie lubię mieć wyjścia konsoli z testów. Ale kiedy pracuję nad konkretnym testem, bardzo przydatne jest posiadanie wyjścia konsoli, więc idę dalej i odkomentuję tę linię przed wykonaniem tego testu z gradle test --tests *name.

Chciałbym wiedzieć, czy jest to zautomatyzowany sposób.

EDYCJA: Pozwól mi wyjaśnić. Chciałbym mieć wyjście konsoli po uruchomieniu gradle test --tests *name, ale nie kiedy uruchamiam gradle test.

Odpowiedz

3

Aby uzyskać wyjścia konsoli w niektórych tras dla wszystkich testów, można dostarczać dodatkowego parametru (-Poutput) na linii poleceń:

gradle test --tests *name -Poutput

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

Aby uzyskać wyjścia konsoli na konkretnym teście tylko:

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

Zobacz TestDescriptor i Test

+0

Przydaje się. Jednak tak naprawdę nie dajesz mi rozwiązania, którego potrzebuję. Zobacz moje edytowane pytanie. Dzięki! – emisilva

+0

Edytowałem swoją odpowiedź. – tnabeel

+0

nie działa z uruchomieniem gradle lub gradle --tests * name http://codepad.org/bdzJya6I – emisilva

1

Dla odniesienia używam alternatywne podejście przy użyciu czytając flagi linii poleceń --info

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

Więc kiedy uruchomiony gradle test --info, zobaczymy więcej szczegółów includint Gradle wyjście testowe. W tej konfiguracji widzę inne informacje o gradacji, takie jak wersje zależności, które mogą być przydatne.

Jednak myślę, że powyższa odpowiedź pozwala na większą kontrolę nad wydajnością, np. :

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