AndroidX Test Espresso 3.1.1, Runner 1.1.1, reguły 1.1.1, monitorowanie 1.1.1 AndroidTestOrchestrator 1.1.1, Core 1.1.0, Truth 1.1.0, JUnit 1.1.0 (2018-12-13)
To jest stabilna wersja AndroidX Test 1.1.0.
- Rdzeń
- Konfiguruj, aby w scenariuszu aktywności znajdowały się działania rozpoczynające inne działanie
AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Reguły 1.1.1-beta01, Monitor 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01 Truth 1.1.0-beta01, J
- Rdzeń
- Nowy artefakt rozszerzenia core-ktx kotlin. Zawiera przyjazny dla kotlin interfejs APIActivityScenariusz.launchActivity.
- Nowy interfejs ActivityScenariusz API do uruchamiania działań z intencjami niestandardowymi
- Nowy interfejs ActivityScenariusz API do otrzymywania wyniku działania
- Wyłącz możliwość zamknięcia scenariuszy aktywności
- Espresso
- Aby zapewnić zgodność z interfejsem API 28, zmodyfikuj atrybuty za pomocą elementów ResourceNameMatcher i HumanReadables.
- Zaktualizuj opis funkcji ReplaceTextAction, aby uwzględnić parametr stringToBeSet
- Wstrzymuj espresso w trybie wstrzymania loopera Robolectric.
- JUnit
- Nowy interfejs ActivityScenariuszRule API do automatycznego uruchamiania i zamykania działania podczas konfiguracji i usuwania testów
- Nowy artefakt rozszerzenia junit-ktx kotlin! Zawiera przyjazny dla kotlin interfejs ActivityScenariuszRule API
- Gra biegowa
- Zadbaj o spójność działania pakietów -e i testFile podczas odbierania pakietów.
- Fakt
- Dodawanie interfejsów API pakietu bool, parcelable i parcelableAsType BundleSubject
AndroidX Test Espresso 3.1.0, Runner 1.1.0, reguły 1.1.0, monitorowanie 1.1.0 AndroidTestOrchestrator 1.1.0, Core 1.0.0 Truth 1.0.0, JUnit 1.0.0 (2018.10.24)
- Wszystkie
- Ustaw parametr minSdkVersion na 14 i targetSdkVersion na 28
- Espresso
- Popraw funkcję withContentDescription, aby móc korzystać z typów innych niż ciągi
- Dodaj obsługę korzystania z Espresso w Robolectric
- Problem 72798625: Espresso ViewMatchers.withText nie działa, gdy włączona jest opcja textAllCaps.
- Dodaj obsługę wstrzykiwania sekwencji zdarzeń ruchu
- Intencje
- Dodaj interfejs API w wersji beta do pobierania listy intencji. Przeznaczone do użytku z nowymi asercjami prawdy
- Gra biegowa
- Dodaj obsługę aplikacji błyskawicznych
- Wycofaj wersję androidx.test.runner.AndroidJUnit4 i zastąp ją androidx.test.ext.junit.runners.AndroidJUnit4
- Monitorowanie
- Wycofaj androidx.test.InstrumentationRegistry i zastąp go androidx.test.platform.app.InstrumentationRegistry oraz androidx.test.core.app.ApplicationProvider.
- AndroidTestOrchestrator
- Włącz obsługę pokrycia przez administratora tylko wtedy, gdy przekazane są zarówno argumenty „coverage”, jak i „coverageFilePath”.
- Poczekaj na debuger tylko po ustawieniu parametru -debug, ale nie wyświetlaj listy przypadków testowych ATO. Dodano nową flagę OrchestratorDebug do debugowania samego narzędzia orkiestrowego.
- Rdzeń
- Nowy artefakt! Zawiera nowe interfejsy API, które obsługują testy lokalne i działające na urządzeniu:
- Pobieram kontekst: ApplicationProvider
- Kontrolowanie cykli życia działań: ActivityScenariusz(beta)
- Narzędzia do tworzenia MotionEvent, PackageInfo
- Klasa narzędzia Parceables
- Nowy artefakt! Zawiera nowe interfejsy API, które obsługują testy lokalne i działające na urządzeniu:
- Fakt
- Nowy artefakt! Obejmuje niestandardowe obiekty prawda w przypadku powiadomień, intencji, pakietu, interfejsu Parcelable i MotionEvent
- JUnit
- Nowy artefakt! Obejmuje klasę JUnit Runner androidx.test.ext.junit.runners.AndroidJUnit4, która obsługuje testy lokalne i na urządzeniu.
Espresso 3.0.2-beta1, Runner 1.0.2-beta1, reguły 1.0.2-beta1, monitor 1.0.2-beta1, AndroidTestOrchestrator 1.0.2-beta1 (16.04.2018)
- Espresso
- Breaking API Change:
- W numerze 64062890 dowiedzieliśmy się, że używamy Guava Optional w naszym publicznym interfejsie API. To był straszny niedbalstwo z naszej strony . W związku z tym wprowadziliśmy w tej wersji zmianę dotyczącą publicznego interfejsu API, która rozwiązuje ten problem. Wprowadziliśmy brzydką otokę klasy Guava Optional o nazwie EspressoOptional, która znajduje się w przestrzeni nazw „android.support.test.espresso.util”. Deweloperzy, którzy używali ujawnionego Guava Optional API, muszą zmienić importowanie i odwołania, aby używać EspressoOptional podczas aktualizacji do nowej wersji. Przepraszamy za niedogodności.
- Interfejsy API onView() i onData() są teraz oznaczone jako @CheckReturnValue, aby zapobiec błędom.
- Poprawiono plik POM espresso-core, który nie pobierał zależności „reguł”; zamiast tego pobierał ją POM z zamiarem espresso. Dla programistów powinna to być zmiana typu NoOp, ponieważ z zamiarem espresso nie można używać bez espresso-core.
- Problem 65486414: espresso brak zależności od gujawy
- Problem 65576174: Espresso IdlingResourceRegistry.sync powoduje drugą niepowodzenie testu
- Problem 65568629: Espresso.onIdle nie używa IdlingRegistry
- Problem 69333598: espresso 3.0.1 niezgodne z funkcją play-services-auth:11.6.0 w module biblioteki Androida.
- Problem 64062890: wewnętrzny opcjonalny typ ujawniony przez interfejs AdapterViewProtocol
- Problem 64091847: Espresso 3.0.0 NIE powinno zależeć od mechanizmu uruchamiania testów
- Problem 73722050: pakiety espresso-contrib 3.0.2-alpha1 android.arch.{lifecycle/core}
- Breaking API Change:
- Pilot do espresso
- To zupełnie nowy artefakt. Połączyliśmy wszystkie funkcje Espresso z wielu procesów poza artefakt espresso. Będzie to bardziej przejrzyste i powinno znacznie zmniejszyć ogólny rozmiar rdzeni espresso i liczbę metod.
- Gra biegowa
- Obetnij zrzut stosu, jeśli jest zbyt duży dla transakcji powiązanej. Zespół AJUR musi zgłaszać problemy do AM za pomocą protokołu IPC powiązanego, więc musimy upewnić się, że nie przekroczymy limitu transakcji Binder, który wynosi 1 MB na proces.
- Problem 65828576: awaria TestRequestBuilder podczas wykonywania testu w klasie z użyciem @Ignoruj
- Problem 37057596: nie obsługujemy błędów w @BeforeClass
- Reguły
- Pamiętaj, aby opublikować odwołanie do testowanej aktywności po zmianach w cyklu życia. W trakcie trwania testu można teraz manipulować aktywnością bezpośrednio przy użyciu odwołania uzyskanego za pomocą metody #getActivity(). Jeśli działanie zostało zakończone i ponownie uruchomione, odniesienie zwrócone przez #getActivity() zawsze wskazuje jej bieżące wystąpienie.
- Problem 64389280: GrantPermissionRule nie zapewnia WRITE_EXTERNAL_STORAGE.
- Problem 37065965: ActivityTestRule na wyciek aktywności po zmianie orientacji.
- Problem 75254050: ActivityTestRule nie aktualizuje instancji aktywności podczas zmian konfiguracji.
- Problem 64464625: nie można wykonywać działania interfejsu użytkownika w metodzie zakończenia() aktywności.
- AndroidTestOrchestrator
- Przekazuj flagi
-e coverage true -e coverageFilePath /sdcard/foo/
, aby generować pliki pokrycia w danej lokalizacji (aplikacja musi mieć uprawnienia do zapisu w danej lokalizacji). Konwencja nazewnictwa plików dotyczących pokrycia wygląda teraz tak:com.foo.Class#method1.ec
. Pamiętaj, że ta funkcja jest obsługiwana tylko w trybie izolowanym. Nie można jej też używać razem z flagącoverageFile
AndroidaJUnitRunner. Ponieważ wygenerowane pliki pokrycia zastępują się nawzajem. - Przekaż flagę
-e clearPackageData
, jeśli chcesz, aby administrator uruchamiał poleceniapm clear context.getPackageName()
ipm clear targetContext.getPackageName()
między wywołaniami testowymi. Pamiętaj, że kontekst w poleceniu jest związany z testowaną aplikacją. - Naprawiliśmy – w przypadku pustego testu (tzn. braku @Test w obrębie elementu docelowego) wynik testu jest inny niż w starszym trybie.
- Problem 72758547: narzędzie Test Orchestrator powoduje, że dane dotyczące zakresu Jacoco są niekompletne, ponieważ mają tylko dane z ostatniego uruchomienia testu
- Problem 67916042: Android Test Orchestrator : wykonanie zostało zatrzymane w przypadku awarii procesu z powodu braku pamięci
- Problem 77752735: awarie narzędzia Orchestrator w przypadku transakcji TransactionTooLarge
- Problem 77549481: narzędzie Test Orchestrator powinno uruchamiać polecenie „pm clear” po każdym teście
- Przekazuj flagi
Espresso 3.0.2-alpha1, Runner 1.0.2-alfa1, reguły 1.0.2-alfa1, AndroidTestOrchestrator 1.0.2-alfa1 (2017.12.05)
Espresso
Intents
ma teraz odpowiedź z możliwością wywołania, co umożliwia wykonywanie testów po przechwyceniu uruchomionej intencji, ale przed zwróceniem obiektuInstrumentation.ActivityResult
.
Biegarze
Wydziel artefakt Maven monitora
com.android.support.test:monitor:<version>
dla użytkowników, którzy potrzebują interfejsuMonitoringInstrumentation
bez uruchomionych testów i funkcji JUnit.Jeśli używasz
com.android.support.test:runner:<version>
, wszystko działa zgodnie z oczekiwaniami, ponieważ Gradle automatycznie pobiera modułmonitor
jako zależność modułurunner
.Dodano flagę
newRunListenerOrderMode
. Gdy ustawiona jesttrue
, detektory zdefiniowane przez użytkownika działają przed detektorami domyślnymi. Spodziewamy się, że w przyszłości taki sposób działania stanie się domyślny.Problem 65828576:
TestRequestBuilder
awarii podczas wykonywania testów w klasie z adnotacją@Ignore
(samodzielną bez przeprowadzania testów lub funkcji JUnit).
AndroidTestOrchestrator
- Teraz przeprowadza się puste testy w taki sam sposób jak niesorganizowane
AndroidJUnitRunner
. - Narzędzie Orchestrator może teraz obsługiwać bardzo duże standardowe dane wyjściowe z
AndroidJUnitRunner
.
- Teraz przeprowadza się puste testy w taki sam sposób jak niesorganizowane
Espresso 3.0.1, Runner 1.0.1, reguły 1.0.1, AndroidTestOrchestrator 1.0.1 (28.08.2017)
Espresso
- Dodaliśmy opcję
IdlingPolicy
pomijającąonTimeout()
, gdy debuger kroków jest podłączony do maszyny wirtualnej. - Problemy 64024656, 64247586 i 64525881: nie zgłaszaj błędów związanych z nieudanym wczytaniem klas, chyba że użytkownik wczytuje określone klasy, podając argument mechanizmu uruchamiania klas
-e
. - Problem 64877246: dodawanie brakujących zajęć do pliku JAR źródła.
- Dodaliśmy opcję
Biegarze
- Uproszczona logika:
ShardingFilter
. - Problem 65025743: filtr
@RequiresDevice
obsługuje teraz emulatory FTL.
- Uproszczona logika:
AndroidTestOrchestrator
- Nie powtarzaj błędów w raportach. Gdy proces testowy ulegnie awarii, a w trakcie testu nie uda się go rozwiązać, zgłaszany jest tylko 1 niepowodzenie.
- Poprawiono dokument Javadoc dla narzędzia Orchestrator.
- Testy są teraz wskazywane jako nieoddane w przypadku awarii procesu zdalnego.
- Teraz obsługuje zignorowane przypadki testowe.
- Teraz wyklucza zignorowane przypadki testowe ze stopki, aby dopasować je do wcześniejszych wyników.
- Rozwiązaliśmy problemy z uprawnieniami w czasie działania. Raporty z testów są teraz zapisywane na karcie SD w Androidzie 7.0 (poziom interfejsu API 24) i nowszych.
Espresso 3.0.0, Runner 1.0.0, reguły 1.0.0, AndroidTestOrchestrator 1.0.0 (25.07.2017, ogłoszenie)
Zmiany powodujące niezgodność
- Wszystkie artefakty
- Wycofanie obsługi poziomów interfejsu API niższych niż 15 – jednak minimalny pakiet SDK nadal wskazuje interfejs API na poziomie 9, aby dać użytkownikom czas na uaktualnienie.
- Espresso
- Wycofana klasa
android.support.test.espresso.contrib.CountingIdlingResource
została usunięta i przeniesiona do zadaniaandroid.support.test.espresso.idling.CountingIdlingResource
.- Używaj
getInstance().register()
zamiastregisterIdlingResources()
- Używaj
- Guava to teraz inna „wewnętrzna” przestrzeń nazw – jeśli przypadkiem używasz interfejsu Guava API przez przestrzenie nazw espresso, możesz zauważyć błędy.
- Usuń wszelkie odwołania do zacienionej Gujawy (
.core.deps.guava.
) - Uaktualnij Bibliotekę pomocy do wersji 25.4.0 lub nowszej
- Usuń wszelkie odwołania do zacienionej Gujawy (
- Wycofana klasa
Znane problemy
- AndroidTestOrchestrator
- Argumenty uruchamiające
-e numShards
i-e shardIndex
nie są obecnie obsługiwane - Testy z parametrami nie są obecnie obsługiwane
- Argumenty uruchamiające
Nowe funkcje
- Espresso
- Nowa funkcja Multiprocess Espresso
Obsługa interfejsu API 26 w przypadku
espresso-core
iespresso-web
, ale nieespresso-contrib
- Nowy, prostszy interfejs API
IdlingRegistry
- Opublikowano w ramach:
com.android.support.test.espresso:espresso-idling-resource:3.0.0
- Wycofane metody:
- Opublikowano w ramach:
- Nowy interfejs API ułatwiający synchronizację z serwerem
Executors
- Nowy artefakt Maven:
com.android.support.test.espresso.idling:idling-concurrent:3.0.0
- Zawiera
IdlingScheduledThreadPoolExecutor
iIdlingThreadPoolExecutor
klas
- Nowy artefakt Maven:
- Nowy interfejs API ułatwiający synchronizację z żądaniami i odpowiedziami sieci.
- Nowy artefakt Maven:
com.android.support.test.espresso.idling:idling-net:3.0.0
- Zawiera klasę
UriIdlingResource
- Nowy artefakt Maven:
- Nowe dopasowania wyświetleń (
espresso-core
):- Parametr
hasBackground()
jest zgodny z zasobem rysowanym w tle obiektuView
hasTextColor()
pasuje do koloru obiektuTextView
- Parametr
- Nowe metody wyświetlania:
- Działanie wyświetlania rozszerzonego elementu
scrollTo()
umożliwiające wykonywanie pracy z elementami podrzędnymi elementuListView
repeatedlyUntil()
– wykonuje podaneViewAction
w widoku, dopóki nie zostanie on dopasowany do pożądanego widokuViewMatchers
- Działanie wyświetlania rozszerzonego elementu
- Nowe metody espresso:
pressBackUnconditionally()
– podobnie jakpressBack()
, ale nie robi wyjątku, gdy Espresso porusza sięnoActivity()
– eliminuje potrzebę oczekiwania na działanie przed wykonaniemViewAction
lubViewAssertion
onIdle()
– zapętla wątek główny do momentu, aż aplikacja stanie się bezczynnaonIdle(Callable<T>)
– to samo coonIdle()
, ale przyjmuje dodatkową wartośćCallable
jako parametr, który jest wykonywany, gdy aplikacja stanie się bezczynna
webScrollIntoView()
– nowy atomespresso-web
, który umożliwia przewijanie w obrębieWebView
- Nowa funkcja Multiprocess Espresso
Obsługa interfejsu API 26 w przypadku
- Gra biegowa
-
InterceptingActivityFactory
iSingleActivityFactory
– zapewnia obiekt do testowania działania w izolacji od świata zewnętrznego przez zastąpienie metod takich jakstartService()
isendBroadcast()
-
Dodaj obsługę użycia JUnitParams z
AndroidJUnitRunner
-
Zacznij obsługiwać algorytm
@UiThreadTest
na poziomie podstawowego mechanizmu uruchamiania testów i wycofaj@UiThreadTestRule
– umożliwia to korzystanie z adnotacji@UiThreadTest
bezpośrednio w metodach oznaczonych adnotacjami@Before
i@After
-
Adnotacja
@SdkSupress
obsługuje teraz wartośćmaxSdkVersion
(numer: 37067792) -
-e classLoader
– umożliwia pomijanie klas wczytujących za pomocą argumentów uruchamiających -
-e filter
– dodano obsługę niestandardowych filtrów JUnit do określenia za pomocą argumentów uruchamiających -
-e runnerBuilder
– umożliwia deweloperom zapewnienie własnych implementacji interfejsuRunnerBuilder
, które określają, czy i jak działają w przypadku określonej klasy
-
- Reguły
ProviderTestRule
– nowy interfejs API do testowania obiektówContentProvider
getActivityResult()
iActivityResultMatchers
– nowy interfejs API do pobierania wyniku działania związanego z działaniem o nazwiesetResult()
- AndroidTestOrchestrator
- Android Test Orchestrator to nowy sposób zbierania i przeprowadzania testów, z naciskiem na prawidłowość i izolację. Orchestrator to niezależny proces instrumentacji, który uruchamia jeden proces uruchamiania instrumentacji dla każdego testu i gromadzi wyniki.
- Awarie aplikacji likwidują instrumentację biegową, ale nie moderator, dzięki czemu pakiet testowy może działać
- Wymaga zainstalowania pliku APK narzędzia orkiestrowego –
'com.android.support.test:orchestrator:1.0.0'
- Wersja 1.0 obsługuje wyłącznie interfejs wiersza poleceń. Planujemy integrację z Android Studio i Laboratorium Firebase.
- Android Test Orchestrator to nowy sposób zbierania i przeprowadzania testów, z naciskiem na prawidłowość i izolację. Orchestrator to niezależny proces instrumentacji, który uruchamia jeden proces uruchamiania instrumentacji dla każdego testu i gromadzi wyniki.
Poprawki błędów
- Espresso
- Ulepszona synchronizacja widoku głównego, aby znacznie ograniczyć niestabilne działanie
- Napraw uszkodzenia
IdlingResourceRegistry
- Lepsza synchronizacja z obiektami
IdlingResource
- Problem 37132680: Espresso nie czeka na zakończenie tworzenia okna dialogowego przed wykonaniem następnego działania.
- Problem 37103280: Espresso powinno wysyłać reguły konsumenckie ProGuard dla klientów, którzy nie muszą ich dodawać.
- Problem 37094726: intencje Espresso zawierają niepotrzebną etykietę aplikacji
- Problem 37093953: Espresso: brak dostępnego sprawdzenia pod kątem pustego lub null tekstu błędu
- Problem 37071776:
espresso-core
zawiera pliki.pom
Gujawy - Problem 37062612: NPE w
release()
- Problem 37063389: zależności Guavy i
espresso-web
jakoandroidTest
nie kompilują się. - Problem 37070533: Dodano obsługę
NavigationView
w bibliotece pomocy Android Design
- Gra biegowa
-
Napraw możliwość użycia atrybutu
@UiThreadTest
w połączeniu z komponentem@Test(timeout = 123)
- Poprawiono
-e notClass
argument biegacza - Poprawiliśmy
-e log
, aby obsługiwać pakiety testowe JUnit3 i JUnit4, a także certyfikaty uruchamiająceParameterized
iEnclosed
- Problem 37663530: przed każdą metodą testowania poczekaj na zakończenie wszystkich działań
- Problem 37132680: Espresso nie czeka na zakończenie tworzenia okna dialogowego przed wykonaniem następnego działania.
-
Problem 37123213:
@RequiresDevice
zignorowano w interfejsie ABI x86_64 -
Problem 37101485: niektóre argumenty podane w pliku manifestu dla
AndroidJUnitRunner
, np. rozmiar testowy, adnotacja i debugowanie, są ignorowane. - Problem 37082857: półrównoległe wykonanie testu Espresso kończy się niepowodzeniem na obiektach statycznych
-
Problem 37063396: kontekst nie został zainicjowany z użyciem
ProviderTestCase2
(powoduje toNullPointerException
)
-
Napraw możliwość użycia atrybutu
- Reguły
- Poprawiono cykl życia
ActivityTestRule
w celu ujednolicania działania podczas zwykłego i leniwego inicjowaniaActivityTestRule
. - Problem 37079943: popraw błąd
ServiceTestRule
, aby umożliwić ponowne powiązanie - Problem 37109342: dodaj
getActivityResult()
iActivityResultMatchers
- Poprawiono cykl życia
- UiAutomator
setUiAutomationFlags()
do użytku z usługąUiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES
– umożliwia korzystanie zUiAutomator
podczas działania innych usług ułatwień dostępu- Problem 37082813:
setText()
przy pustych obiektachEditText
zgłaszaNullPointerException
, jeśli poziom interfejsu API to 19 lub niższy
Inne ważne zmiany
- Pliki binarne są teraz publikowane przez Google Maven
- Zmniejszony rozmiar plików
espresso-core
iespresso-web
JAR – w osadzonych zależnościach zastosowano teraz ProGuard - Wszystkie pliki
.aar
zawierają teraz reguły ProGuard - Dodaj
proguard_library.cfg
plików do opublikowanych artefaktów - Interfejs
Tapper
ma nową wersjęsendTap()
do wdrożenia
Treści publikowane przez użytkowników zewnętrznych
- Espresso
- Gra biegowa
- Reguły
Espresso 2.2.2, Runner/Rules 0.5 (22.02.2016, wersja cicha)
Nowe funkcje
- espresso
- Problem 194253: dodano obsługę interfejsu NavigationView w bibliotece projektów pomocy Androida
- Dodano testy, czy włączone są animacje i przejścia
- Nowy interfejs API
ViewMatcher
:withResourceName()
Poprawki błędów
- espresso
- Problem 195331: aplikacja espresso-core umieszczono pliki pom z gujawy
- Przeniesiono nieaktywny zasób służący do liczenia z espresso-contrib
- reguły
- Problem 187249: NPE w domenie
Intents.release()
- Problem 187249: NPE w domenie
- runner
- Problem 196066: argument
-e log true
wAndroidJUnitRunner
nie omija rzeczywistego testu - Poczekaj na debugera w
onCreate()
pliku uruchamiającym - Przeniesiono wszystkie obsługiwane adnotacje testowe z platformy do ATSL.
- Usunięto zrzut stosu zrzutu stosu o braku JSBridge
- Naprawiono:
AndroidAnnotatedBuilder
- Problem 196066: argument
Inne ważne zmiany
ActivityTestRule
,UiThreadTestRule
,IntentsTestRule
iServiceTestRule
są w fazie beta- Dodaj plik ustawień stylu kodu, aby uzyskać jednolite formatowanie kodu
Espresso 2.2.1, Runner/Rules 0.4 (15.09.2015)
Nowe funkcje
- reguły
- Dodano nowy konstruktor
IntentsTestRule
, który jest w pełni zgodny zActivityTestRule
- Dodano nowy konstruktor
- runner
- Dodano instalację specjalnych przypadków multidex dla interfejsów API na poziomach 15 i niższych
- Do zajęć i pakietu dodano filtry wykluczania:
- Uruchomienie wszystkich testów oprócz tych w konkretnej klasie:
adb shell am instrument -w -e notClass com.android.foo.FooTest
- Przeprowadzenie wszystkich testów oprócz jednego:
adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo
- Przeprowadzam wszystkie testy oprócz konkretnego pakietu:
adb shell am instrument -w -e notPackage com.android.foo.bar
- Uruchomienie wszystkich testów oprócz tych w konkretnej klasie:
Treści publikowane przez użytkowników zewnętrznych
- espresso
- 157911: dodaj dopasowanie widoku dla typu danych wejściowych w obiekcie
EditText
- 157912: dodaj dopasowanie widoku dla tekstu błędu w obiekcie
EditText
- 150674: dodaj obsługę parametru
DrawerActions
w przypadku szuflad z dowolną grawitacją - 150744:
DrawerActions
już nie wyciekparentListener
- 153303: grawitacja określona przy sprawdzaniu, czy szuflada jest otwarta czy zamknięta.
- 157910: dodaj
DrawerLayout
fabryki otwartych i zamkniętych akcji
- 157911: dodaj dopasowanie widoku dla typu danych wejściowych w obiekcie
Poprawki błędów
- espresso
ViewActions.closeSoftKeyboard()
teraz sprawia, że klawiatura programowa zniknęła- Rozwiązaliśmy problem z synchronizacją z metodą
Espresso.pressBack()
Espresso na poziomie API 21 i wyższym - Naprawiono synchronizację animacji zamknięcia klawiatury na poziomie API 23
- reguły
- Poprawiono funkcję
ServiceTestRule
w interfejsie API poziomu 23,startService()
zawsze musi być wywoływana z jawnymIntent
- Poprawiono funkcję
- runner
- Naprawiono problem z uszkodzoną obsługą Gradle
JaCoCo
- Naprawiono obsługę uszkodzonego fragmentacji testu
- Naprawiono niespójność stanu w narzędziu do uruchamiania testów po upływie limitu czasu oczekiwania stylu na
JUnit3
- Naprawiono problem z uszkodzoną obsługą Gradle
Inne ważne zmiany
- Poprawki języka Javadoc i ulepszenia komunikatów o błędach
- Ignoruj metody
suite()
i nie ignoruj błędów inicjowania podczas korzystania z filtrów metod
Espresso 2.2 / ATSL 0.3 (9.06.2015)
Nowe funkcje
- espresso-web 2.2
- Nowa obsługa klienta
WebView
- Nowa obsługa klienta
- espresso-core 2.2
- Przeniesiono do sztyletu w wersji 2
- Migracja do hamcrest w wersji 1.3
- espresso-contrib 2.2
- Testy ułatwień dostępu
- Obsługa grawitacji
DrawerActions
- rules 0.3
DisableOnAndroidDebug
reguła
- runner 0.3
- Uaktualnij z wersji JUnit 4.10 do JUnit do wersji 4.12
- Migracja do Hamcrest w wersji 1.3
Poprawki błędów
- Naprawiono wyciek danych
ParentListener
z elementuDrawerActions
- Niepowodzenie założenia jest teraz traktowana jako test ignorowania, a nie jako niepowodzenie
- Naprawiliśmy wyciek danych instancji aktywności (
MonitoringInstrumentation
) w interfejsieExecutorService
- Naprawiono blokowanie się osieroconych aktywności na zatrzymanym etapie.
- Zaktualizuj funkcję
Until.scrollFinished()
, aby zwracała wartość „prawda”, jeśli nie zostały wygenerowane żadne zdarzenia przewijania. Chroń się przed potencjalnymi niebezpiecznymi osobami niepełnosprawnymi w aplikacjiUiObject2#setText()
.
Espresso 2.1, Test Runner/Rules 0.2 i UIAutomator 2.1.0 (21.04.2015)
Zmiany powodujące niezgodność
- Artefakt systemu uruchamiającego test został podzielony na 2 części, a nazwa została zmieniona z
com.android.support.test:testing-support-lib:0.1
nacom.android.support.test:runner:0.2
icom.android.support.test:rules:0.2
.
Nowe funkcje
- espresso-intents: interfejs API podobny do Mockito, który umożliwia hermetyczne testowanie interaktywności, umożliwiając autorom testów weryfikację i skracanie intencji wychodzących.
IntentsTestRule
: rozszerzenieActivityTestRule
, zainicjowanie i publikowanie Espresso-Intents w testach funkcjonalnego interfejsu użytkownika.
- espresso-core
ViewActions
: dodano możliwość uruchamiania asercji globalnych przed wykonaniem działań. Jest to przydatne w przypadku innych platform, które bazują na Espresso, do sprawdzania stanu hierarchii widoków podczas wykonywania istniejącego pakietu testów Espresso.- Przeciążenie:
ViewMatchers.withContentDescription()
resId
- reguły
ActivityTestRule
: ta reguła służy do testowania funkcjonalnego pojedynczej aktywności- Adnotacje
UiThreadRule
iUiThreadTest
: ta reguła pozwala na wykonywanie metody testowej z adnotacjąUiThreadTest
w głównym wątku aplikacji (lub w wątku UI). ServiceTestRule
: ta reguła umożliwia testowanie funkcjonalne usługi
- runner
ApplicationLifecycleCallback
: wywołanie zwrotne do monitorowania zdarzeń cyklu życia aplikacji- Wszystkie argumenty uruchamiającego można teraz też określić w pliku manifestu Androida za pomocą tagu
<meta-data>
- UIAutomator
UiDevice.dumpWindowHierarchy()
może teraz akceptowaćFile
iOutputStream
Poprawki błędów
- espresso
- Dopasowanie kursora zwraca teraz
false
, jeśli kolumny nie można znaleźć, więc Hamcrest może przejść do następnego kursora - Zdarzenie
NullPointerException
z parametremwithTitle
PreferenceMatchers
już nie występuje - Wyrejestrowanie bezczynnego zasobu nie powoduje już, że Espresso uznaje, że zasoby są zajęte
- Zaktualizowana wersja adnotacji pomocy technicznej używana przez Espresso Contrib
- Dopasowanie kursora zwraca teraz
- runner
AndroidJUnit4
pomija teraz testy z błędnymi założeniami
- UIAutomator
- Obserwujący, aby zapobiec
StaleObjectException
- Obserwujący, aby zapobiec
Inne ważne zmiany
- Dodaj lepszy komunikat o błędzie, gdy nie można wpisać tekstu przy użyciu ciągu znaków spoza alfabetu łacińskiego
UIAutomator 2.0 (12.03.2015)
Narzędzie UI Automator opiera się teraz na instrumentacji Androida i możesz tworzyć i przeprowadzać testy za pomocą polecenia ./gradlew connectedCheck
.
Espresso w wersji 2.0, Test Runner 0.1 (opublikowano 19.12.2014)
Zmiany powodujące niezgodność
- Usługa Espresso została przeniesiona do nowej przestrzeni nazw z
android.support.test.espresso
doandroid.support.test.espresso
- Nazwa artefaktu espresso została zmieniona.
espresso-1.1.jar
to terazespresso-core-release-2.0.jar
- Interfejs aplikacji
IdlingResource
został przeniesiony do osobnej biblioteki:espresso-idling-resource-release-2.0.jar
CountingIdlingResource
znajduje się teraz wespresso-contrib-release-2.0.jar
(tak jak zawsze)
- Opcjonalna (zależność gujawy) została usunięta z publicznego interfejsu API, aby ułatwić przepakowanie tej zależności i uniknąć kolizji plików DEX (głównego źródła problemów z programowaniem). Dotyczy to m.in. tych metod:
ViewAssertion.check()
HumanReadables.getViewHierarchyErrorMessage()
Nowe funkcje
- Działania
ViewActions
replaceText()
openLink()
- Przesuń palcem w górę i w dół
- espresso-contrib
RecyclerViewActions
: obsługuje interakcje zRecyclerViews
PickerActions
: obsługuje interakcje z selektoramiDate
iTime
- Dopasowania
RootMatchers
isPlatformPopup()
ViewMatchers
isJavascriptEnabled()
withSpinnerText()
withHint()
isSelected()
hasLinks()
LayoutMatchers
: dopasowania do testowania układu dotyczącego i18nCursorMatchers
: zbiór dopasowań dlaCursor
obiektów
- Asercje
PositionAssertions
, w tymisLeftOf()
iisAbove()
: kollecitonViewAssertions
do sprawdzenia względnego położenia elementów na ekranieLayoutAssertions
: asercje do testowania układu dotyczącego i18n
- Aplikacja testowa: wiele nowych przykładowych działań/testów
- Inny:
Espresso.unregisterIdlingResources()
iEspresso.getIdlingResources()
: zapewniają dodatkową elastyczność podczas pracy zIdlingResources
ViewInteraction.withFailureHandler()
: umożliwia zastąpienie modułu obsługi błędów zonView()
- Pomoc na poziomie
onData()
dotycząca:AdapterViews
wspierana przez:CursorAdapters
Poprawki błędów
ViewMatchers.isDisplayed()
pasuje do widoków, które zajmują cały ekran, ale nie są już wyświetlane w 90%- Wykonanie wezwania do działania polegającego na przesuwaniu w celu
DrawerActions.openDrawer()
nie powoduje już wyników w języku:IdlingResourceTimeoutException
Inne ważne zmiany
- Zmieniono z budowania z Mavenem na Gradle
- Przenieśliśmy zależności espresso (Gujava, Dagger, Hamcrest), aby uniknąć kolizji DEX
- Zmieniono na zwracanie powodzenia lub niepowodzenia przy rejestracji i wyrejestrowaniu bezczynnych zasobów
- Obsługa wersji Lollipop: aby uwzględnić zmiany związane z wersją, umieść
message.recycle()
za interfejsem - Zmieniono docelowy poziom pakietu SDK na 21 – dotyczy głównie aplikacji testowej
Wersja 1.1 (opublikowana: 08.01.2014)
Espresso
- Nowe:
swipeLeft
iswipeRight
ViewActions
- Obsługa wielu okien: zaawansowana funkcja umożliwiająca wybór okna docelowego, w którym Espresso ma uruchomić operację.
- Ulepszenia w
TypeTextAction
: umożliwia wpisywanie tekstu we wstępnie skoncentrowanym widoku, co ułatwia dodawanie tekstu - Poprawki wielu błędów
Biblioteka elementów espresso
- Ta nowa biblioteka zawiera funkcje, które uzupełniają espresso, ale nie są częścią głównej biblioteki
- Nowa biblioteka
DrawerActions
do działania w systemieDrawerLayout
: bazuje na bibliotece pomocy Androida, dlatego znajduje się poza główną biblioteką Espresso
Przykładowe testy
- Te testy zostały przeniesione do tego samego pakietu co aplikacja testowa.
- Naprawiono POM z Maven, usuwając duplikaty gujawy, więc
mvn install
powinno teraz działać