Chciałbym zobaczyć wyniki testu (system.out / err, rejestruj komunikaty z testowanych komponentów), ponieważ działają one w tej samej konsoli, którą uruchamiam:
gradle test
I nie czekaj, aż testy zostaną wykonane, aby przejrzeć raporty z testów (które są generowane tylko po zakończeniu testów, więc nie mogę „ogonić” niczego podczas testów)
test
zamknięciu.-i
rzuci kilka nieistotnych informacji na terminal.grep
do odfiltrowania tysięcy niechcianych linii. Zobacz stackoverflow.com/questions/3963708/...Oto moja wymyślna wersja:
źródło
|
z,startItem
ponieważ uruchamianie zadania przez Android Studio 2.2.3 rozpoznało je jako błędy w komunikatach i było denerwujące w przypadku kompilacji powodzenia.Możesz dodać Groovy zamknięcie w pliku build.gradle, który rejestruje się za Ciebie:
Na konsoli wyświetla się następująco:
Od wersji 1.1 Gradle obsługuje znacznie więcej opcji rejestrowania wyników testu . Dzięki tym dostępnym opcjom możesz osiągnąć podobny wynik w następującej konfiguracji:
źródło
Jak odpowiedział stefanglase :
dodanie następującego kodu do
build.gradle
(od wersji 1.1) działa dobrze dla danych wyjściowych z pozytywnych , pomijanych i nieudanych testów.Chciałbym dodatkowo powiedzieć (dowiedziałem się, że jest to problem na początek), że
gradle test
polecenie wykonuje test tylko raz na zmianę .Więc jeśli uruchomisz go po raz drugi, wyniki testu nie będą wyświetlane . Można również zobaczyć w produkcji budowlanej: Gradle czym mówi się na bieżąco na testach. Więc nie jest wykonywany n-ty raz.
Inteligentna klasa!
Jeśli chcesz wymusić uruchomienie przypadków testowych, użyj
gradle cleanTest test
.To nieco nie na temat, ale mam nadzieję, że pomoże niektórym początkującym.
edytować
Jak sparc_spread stwierdził w komentarzach:
Jeśli chcesz wymusić na gradie, aby zawsze uruchamiał nowe testy (co może nie zawsze być dobrym pomysłem), możesz
outputs.upToDateWhen {false}
do niego dodaćtestLogging { [...] }
. Kontynuuj czytanie tutaj .Pokój.
źródło
gradle cleanTest test
każdym razem mówić (od wersji 1.12). Dodajoutputs.upToDateWhen {false}
dotestLogging {...}
i że powinno załatwić sprawę. Zmusi to Gradle do uruchomienia testów za każdym razem. Znalazłem to na forach Gradle, opublikowanych przez samego Docktera . Mam nadzieję że to pomoże.exceptionFormat "full"
, aby uzyskać szczegółowe informacje na temat tego, co nie udało, przydatna, gdy używasz AssertJ lub podobnego lib.cleanTest
ciebie możesz użyćtest --rerun-tasks
--rerun-tasks
sprawi, że wszystkie twoje zadania zostaną uruchomione ponownie, nie tylko zadania do testów.cleanTest test
w najnowszym Android Studio i klasie 3.3 nie działa po mojej stronie, ale załatwiło sprawę--rerun-tasks
. Nie wiem dlaczego. Ale przeczytanie tej odpowiedzi naprawdę rozwiązało mój ból głowy, gdzie do cholery loguje się test po dodaniu wszystkiego.Oświadczenie: Jestem twórcą wtyczki Gradle Test Logger.
Możesz po prostu użyć wtyczki Gradle Test Logger, aby wydrukować piękne logi na konsoli. Wtyczka używa rozsądnych ustawień domyślnych, aby zadowolić większość użytkowników z niewielką konfiguracją lub bez niej, ale oferuje także szereg motywów i opcji konfiguracji, które zadowolą każdego.
Przykłady
Standardowy motyw
Motyw mokka
Stosowanie
Upewnij się, że zawsze otrzymujesz najnowszą wersję od Gradle Central .
Konfiguracja
W ogóle nie potrzebujesz żadnej konfiguracji. Jednak wtyczka oferuje kilka opcji. Można to zrobić w następujący sposób (pokazane wartości domyślne):
Mam nadzieję, że spodoba ci się korzystanie z niego.
źródło
slowThreshold
na0
.Dodaj to, aby
build.gradle
zatrzymać gradle od połykania stdout i stderr.Jest to udokumentowane tutaj .
źródło
zadanie „test” nie działa dla wtyczki dla Androida, dla wtyczki dla Androida użyj:
Zobacz: https://stackoverflow.com/a/31665341/3521637
źródło
Jako kontynuacja wspaniałej odpowiedzi Shubhama chciałbym zasugerować użycie wartości wyliczeniowych zamiast łańcuchów . Proszę spojrzeć na dokumentację klasy TestLogging .
źródło
Moja ulubiona minimalistyczna wersja oparta na odpowiedzi Shubhama Chaudhary'ego.
Umieść to w
build.gradle
pliku:źródło
W Gradle przy użyciu wtyczki do Androida:
Następnie dane wyjściowe będą:
źródło
Połączenie doskonałej odpowiedzi Shubhama i JJD używają wyliczenia zamiast łańcucha
źródło
Kontynuując odpowiedź Benjamina Muschko (19 marca 2011 r.), Możesz użyć
-i
flagi wraz z grep , aby odfiltrować tysiące niechcianych linii. Przykłady:Silny filtr - wyświetla tylko nazwę i wynik testu każdej jednostki oraz ogólny status kompilacji. Błędy konfiguracji lub wyjątki nie są wyświetlane.
Filtr miękki - wyświetla nazwę i wynik testu każdej jednostki, a także błędy konfiguracji / wyjątki. Ale będzie również zawierać pewne nieistotne informacje:
Filtr miękki, Alternatywna składnia: (tokeny wyszukiwania są podzielone na poszczególne ciągi)
Wyjaśnienie, jak to działa: Dane wyjściowe pierwszego polecenia,
./gradlew test -i
są przesyłane potokowo do drugiego poleceniagrep
, które odfiltruje wiele niechcianych wierszy na podstawie wyrażenia regularnego."-E"
włącza tryb wyrażeń regularnych i"|"
oznacza „lub”. Nazwa testu jednostkowego i wynik mogą być wyświetlane za pomocą" > "
, a ogólny status jest dozwolony za pomocą"BUILD"
. W filtrze miękkim"-v"
flaga oznacza „nie zawiera” i"^"
oznacza „początek linii”. Usuwa więc wszystkie wiersze, które zaczynają się od „Wykonanie” lub zaczynają się od „Tworzenie” itp.Przykład testów jednostkowych przyrządów z systemem Android, z klasą 5.1:
Przykład pokrycia testowego jednostki Jacoco z klasą 4.10:
źródło
Jeśli masz
build.gradle.kts
napisane w DSL Kotlin , możesz wydrukować wyniki testu (opracowałem projekt wieloplatformowy Kotlin , bez wtyczki „java”):źródło