AndroidX Test Espresso 3.1.1, Runner 1.1.1, Rules 1.1.1, Monitor 1.1.1, AndroidTestOrchestrator 1.1.1, Core 1.1.0, Truth 1.1.0, JUnit 1.1.0 (13 grudnia 2018 r.)
Jest to stabilna wersja AndroidX Test 1.1.0
- Rdzeń
- Wprowadzenie obsługi aktywności, które uruchamiają inne aktywności, w klasie ActivityScenario
AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Rules 1.1.1-beta01, Monitor 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01 Truth 1.1.0-beta01, JUnit 1.1.0-beta01 (2018-12-06)
- Rdzeń
- Nowy artefakt rozszerzenia Kotlin core-ktx! Zawiera przyjazny dla języka Kotlin interfejs API ActivityScenario.launchActivity.
- Nowy interfejs ActivityScenario API do uruchamiania działań z niestandardowymi intencjami
- Nowy interfejs ActivityScenario API do otrzymywania wyniku aktywności
- Umożliwianie zamykania ActivityScenario
- Espresso
- Zmodyfikuj funkcje withResourceNameMatcher i HumanReadables, aby były zgodne z interfejsem API 28.
- Zaktualizuj opis działania ReplaceTextAction, aby uwzględnić w nim ciąg tekstowy stringToBeSet.
- Obsługa Espresso w trybie wstrzymanego pętli Robolectric.
- JUnit
- Nowy interfejs ActivityScenarioRule API do automatycznego uruchamiania i zamykania aktywności podczas konfigurowania i zamykania testu
- Nowy artefakt rozszerzenia Kotlin junit-ktx! Zawiera interfejs API ActivityScenarioRule, który jest zgodny z językiem Kotlin.
- Runner
- Ujednolicenie zachowania opcji -e package i -e testFile podczas odbierania pakietów
- Prawda
- Dodawanie interfejsów API bool, parcelable i parcelableAsType BundleSubject
AndroidX Test Espresso 3.1.0, Runner 1.1.0, Rules 1.1.0, Monitor 1.1.0 AndroidTestOrchestrator 1.1.0, Core 1.0.0 Truth 1.0.0, JUnit 1.0.0 (24 października 2018 r.)
- Wszystkie
- Ustaw wartość minSdkVersion na 14, a targetSdkVersion na 28.
- Espresso
- Poprawka funkcji withContentDescription, aby działała z typami innymi niż ciągi znaków
- Dodanie obsługi Espresso w Robolectric
- Problem 72798625: Espresso ViewMatchers.withText nie działa, gdy włączona jest funkcja textAllCaps
- Dodano obsługę wstrzykiwania sekwencji zdarzeń ruchu
- Intencje
- Dodano interfejs API w wersji beta do pobierania listy intencji. Przeznaczony do używania z nowymi stwierdzeniami o prawdzie
- Runner
- Dodawanie obsługi aplikacji błyskawicznych
- Wycofanie androidx.test.runner.AndroidJUnit4 i zastąpienie go androidx.test.ext.junit.runners.AndroidJUnit4
- Monitoruj
- Wycofanie androidx.test.InstrumentationRegistry i zastąpienie go przez androidx.test.platform.app.InstrumentationRegistry i androidx.test.core.app.ApplicationProvider
- AndroidTestOrchestrator
- Obsługę pokrycia przez orkiestratora włączaj tylko wtedy, gdy przekazywane są argumenty „coverage” i „coverageFilePath”.
- Czekaj na debugera tylko wtedy, gdy ustawiona jest opcja -debug, ale nie w przypadku testów ATO. Dodaliśmy nową flagę orchestratorDebug do debugowania samego aranżera.
- Rdzeń
- Nowy artefakt! Zawiera nowe interfejsy API, które obsługują testy lokalne i na urządzeniu w przypadku:
- Pobieranie kontekstu: ApplicationProvider
- Kontrolowanie cykli życia aktywności: ActivityScenario(beta)
- Tworzący dla MotionEvent, PackageInfo
- Klasa narzędziowa Parceables
- Nowy artefakt! Zawiera nowe interfejsy API, które obsługują testy lokalne i na urządzeniu w przypadku:
- Prawda
- Nowy artefakt! Zawiera niestandardowe obiekty prawdy dla powiadomień, intencji, pakietów, obiektów Parcelable i zdarzeń MotionEvent.
- JUnit
- Nowy artefakt! Zawiera klasę uruchamiającą JUnit 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, Rules 1.0.2-beta1, Monitor 1.0.2-beta1, AndroidTestOrchestrator 1.0.2-beta1 (2018-04-16)
- Espresso
- Zmiana w interfejsie API powodująca niezgodność:
- W zgłoszeniu 64062890 zwrócono nam uwagę, że w naszym publicznym interfejsie API używamy klasy Guava Optional. To było z naszej strony straszne niedopatrzenie . W tej wersji wprowadziliśmy zmianę w publicznym interfejsie API, która może powodować problemy, ale jest konieczna, aby rozwiązać ten problem. Wprowadziliśmy brzydką otoczkę klasy Guava Optional o nazwie EspressoOptional, która znajduje się w przestrzeni nazw „android.support.test.espresso.util”. Deweloperzy, którzy korzystali z ujawnionego interfejsu Guava Optional API, muszą zmienić importy i odwołania, aby podczas aktualizacji do tej nowej wersji używać EspressoOptional. Przepraszamy za wszelkie związane z tym niedogodności.
- Interfejsy API onView() i onData() są teraz oznaczone adnotacją @CheckReturnValue, aby zapobiegać błędom.
- Poprawiono plik POM espresso-core, aby nie pobierał zależności „rules”, tylko plik POM espresso-intents. Dla programistów nie powinno to stanowić problemu, ponieważ biblioteki espresso-intents nie można używać bez biblioteki espresso-core.
- Problem 65486414: Espresso nie ma zależności od biblioteki Guava
- Problem 65576174: Espresso IdlingResourceRegistry.sync powoduje niepowodzenie drugiego testu
- Problem 65568629: Espresso.onIdle nie używa IdlingRegistry
- Problem 69333598: espresso 3.0.1 jest niezgodny z play-services-auth:11.6.0 w module biblioteki Androida.
- Problem 64062890: wewnętrzny typ opcjonalny udostępniany przez interfejs AdapterViewProtocol
- Problem 64091847: Espresso 3.0.0 nie powinien zależeć od uruchamiającego testy
- Problem 73722050: espresso-contrib 3.0.2-alpha1 zawiera klasy android.arch.{lifecycle/core}
- Zmiana w interfejsie API powodująca niezgodność:
- Espresso-remote
- To zupełnie nowy artefakt. Oddzieliliśmy wszystkie funkcje wieloprocesowe Espresso od artefaktu espresso-core. Jest to bardziej przejrzyste rozwiązanie, które powinno znacznie zmniejszyć ogólny rozmiar i liczbę metod w bibliotece espresso-core.
- Runner
- Obcinanie śladu stosu, jeśli jest za duży na transakcję bindera. AJUR musi zgłaszać błędy do AM za pomocą IPC Binder, dlatego musimy mieć pewność, że nie przekroczymy limitu transakcji Binder, który wynosi 1 MB na proces.
- Problem 65828576: awaria TestRequestBuilder podczas uruchamiania testu w klasie z adnotacją @Ignore
- Problem 37057596: nie obsługujemy błędów w @BeforeClass
- Reguły
- Po zmianach w cyklu życia zwolnij odwołanie do testowanego działania. Podczas testu można teraz bezpośrednio manipulować aktywnością za pomocą odwołania uzyskanego z #getActivity(). Jeśli aktywność zostanie zakończona i ponownie uruchomiona, odwołanie zwrócone przez #getActivity() zawsze będzie wskazywać bieżącą instancję aktywności.
- Problem 64389280: GrantPermissionRule nie zapewnia uprawnienia WRITE_EXTERNAL_STORAGE
- Problem 37065965: ActivityTestRule wyciek aktywności po zmianie orientacji
- Problem 75254050: ActivityTestRule nie aktualizuje instancji Activity podczas zmian konfiguracji
- Problem 64464625: Nie można wykonywać działań w interfejsie w metodzie finish() aktywności
- AndroidTestOrchestrator
- Przekaż flagi
-e coverage true -e coverageFilePath /sdcard/foo/, aby wygenerować pliki pokrycia w danej lokalizacji (aplikacja musi mieć uprawnienia do zapisu w danej lokalizacji). Konwencja nazewnictwa plików pokrycia wygląda teraz tak:com.foo.Class#method1.ec. Uwaga: ta funkcja jest obsługiwana tylko w trybie izolowanym. Nie można go też używać razem z flagącoverageFilew AndroidJUnitRunner. Wygenerowane pliki pokrycia zostaną nadpisane. - Przekaż flagę
-e clearPackageData, jeśli chcesz, aby koordynator wykonywał poleceniapm clear context.getPackageName()ipm clear targetContext.getPackageName()między wywołaniami testów. Pamiętaj, że kontekstem w poleceniu clear jest kontekst testowanej aplikacji. - Naprawiono – podczas przeprowadzania pustego testu, czyli bez adnotacji @Test w obiekcie docelowym, wynik testu różni się od wyniku w trybie starszym.
- Problem 72758547: narzędzie Test Orchestrator powoduje, że dane o pokryciu Jacoco są niekompletne i zawierają tylko dane z ostatniego testu
- Problem 67916042: Android Test Orchestrator : wykonanie zostało przerwane z powodu awarii procesu spowodowanej błędem OutOfMemory
- Problem 77752735: awaria aranżera z powodu wyjątku TransactionTooLargeException
- Problem 77549481: Test Orchestrator powinien uruchamiać polecenie „pm clear” po każdym teście
- Przekaż flagi
Espresso 3.0.2-alpha1, Runner 1.0.2-alpha1, Rules 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (2017-12-05)
Espresso
Intentsma teraz wywoływaną odpowiedź, dzięki czemu testy mogą być wykonywane po przechwyceniu wywołanego zamiaru, ale przed zwróceniem obiektuInstrumentation.ActivityResult.
Runner
Wydzielenie artefaktu monitor maven
com.android.support.test:monitor:<version>dla użytkowników, którzy potrzebująMonitoringInstrumentationbez uruchamiania 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łmonitorjako zależność modułurunner.Dodano flagę
newRunListenerOrderMode. Gdytrue, zdefiniowane przez użytkownika odbiorniki działają przed odbiornikami domyślnymi. (Spodziewamy się, że to zachowanie stanie się domyślne).Problem 65828576:
TestRequestBuilderulega awarii podczas przeprowadzania testów w klasie z adnotacją@Ignore(samodzielnie, bez funkcji testowania lub JUnit).
AndroidTestOrchestrator
- Teraz obsługuje puste testy w taki sam sposób jak testy nieorkiestrowane
AndroidJUnitRunner. - Orchestrator może teraz obsługiwać bardzo duże standardowe dane wyjściowe z
AndroidJUnitRunner.
- Teraz obsługuje puste testy w taki sam sposób jak testy nieorkiestrowane
Espresso 3.0.1, Runner 1.0.1, Rules 1.0.1, AndroidTestOrchestrator 1.0.1 (28 sierpnia 2017 r.)
Espresso
- Dodano opcję
IdlingPolicy, która umożliwia pomijanieonTimeout(), gdy do maszyny wirtualnej jest podłączony debuger kroków. - Problemy 64024656, 64247586 i 64525881: nie zgłaszaj błędów w przypadku nieudanego wczytywania klas, chyba że użytkownik wczytuje określone klasy, dodając argument
-eclass runner. - Problem 64877246: dodanie brakujących klas do pliku JAR źródeł.
- Dodano opcję
Runner
- Uproszczona logika
ShardingFilter. - Problem 65025743: filtr
@RequiresDeviceobsługuje teraz emulatory FTL.
- Uproszczona logika
AndroidTestOrchestrator
- Nie duplikuj błędów raportu. Gdy proces testowy ulegnie awarii po niepowodzeniu, zgłaszane jest tylko jedno niepowodzenie.
- Poprawiono dokumentację Javadoc dla aranżera.
- Jeśli proces zdalny ulegnie awarii, testy będą teraz oznaczane jako nieudane.
- Teraz obsługuje ignorowane przypadki testowe.
- Teraz wyklucza z stopki zignorowane przypadki testowe, aby dopasować je do starszych wyników.
- Rozwiązaliśmy problemy z uprawnieniami czasu działania. Raporty z testów są teraz zapisywane na karcie SD na urządzeniach z Androidem 7.0 (poziom interfejsu API 24) i nowszymi wersjami.
Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (25 lipca 2017 r., ogłoszenie)
Zmiany powodujące niezgodność
- Wszystkie artefakty
- Wyłączenie obsługi interfejsów API na poziomie niższym niż 15 – jednak minimalny pakiet SDK nadal wskazuje interfejs API na poziomie 9, aby dać użytkownikom czas na aktualizację.
- Espresso
- Wycofana klasa
android.support.test.espresso.contrib.CountingIdlingResourcezostała usunięta i przeniesiona doandroid.support.test.espresso.idling.CountingIdlingResource.- Użyj
getInstance().register()zamiastregisterIdlingResources()
- Użyj
- Guava została przeniesiona do innej „wewnętrznej” przestrzeni nazw. Jeśli przypadkowo używasz interfejsu API Guava w przestrzeniach nazw Espresso, mogą wystąpić problemy.
- Usuń wszystkie odniesienia do zacienionego koloru Guava (
.core.deps.guava.) - Zaktualizuj bibliotekę pomocy do wersji 25.4.0 lub nowszej.
- Usuń wszystkie odniesienia do zacienionego koloru Guava (
- Wycofana klasa
Znane problemy
- AndroidTestOrchestrator
- Argumenty narzędzia
-e numShardsi-e shardIndexnie są obecnie obsługiwane. - Testy parametryzowane nie są obecnie obsługiwane.
- Argumenty narzędzia
Nowe funkcje
- Espresso
- Nowy wieloprocesowy Espresso
Obsługa na API 26 w przypadku
espresso-coreiespresso-web, ale nieespresso-contrib - Nowy uproszczony 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
Executors- Nowy artefakt Maven:
com.android.support.test.espresso.idling:idling-concurrent:3.0.0 - Zawiera zajęcia
IdlingScheduledThreadPoolExecutoriIdlingThreadPoolExecutor
- Nowy artefakt Maven:
- Nowy interfejs API, który pomaga synchronizować żądania i odpowiedzi sieciowe.
- Nowy artefakt Maven:
com.android.support.test.espresso.idling:idling-net:3.0.0 - Zawiera
UriIdlingResourcezajęcia
- Nowy artefakt Maven:
- Nowe dopasowania widoku
espresso-core:hasBackground()pasuje do zasobu rysowalnego w tle obiektuViewhasTextColor()pasuje do koloru obiektuTextView
- Nowe metody działania widoku:
- Ulepszona czynność wyświetlania
scrollTo()do pracy z elementami podrzędnymiListView repeatedlyUntil()– wykonuje podaneViewActionw widoku, dopóki widok nie będzie zgodny z odpowiednimViewMatchers
- Ulepszona czynność wyświetlania
- Nowe metody Espresso:
pressBackUnconditionally()– podobna dopressBack(), ale nie zgłasza wyjątku, gdy Espresso nawiguje.noActivity()– Eliminuje konieczność czekania na aktywność przed wykonaniemViewActionlubViewAssertion.onIdle()– powoduje pętlę w wątku głównym, dopóki aplikacja nie przejdzie w stan bezczynności.onIdle(Callable<T>)– Działa tak samo jakonIdle(), ale przyjmuje dodatkowy parametrCallable, który jest wykonywany po przejściu aplikacji w stan bezczynności.
webScrollIntoView()– Nowy atomespresso-web, który umożliwia przewijanie wWebView
- Nowy wieloprocesowy Espresso
Obsługa na API 26 w przypadku
- Runner
-
InterceptingActivityFactoryiSingleActivityFactory– umożliwia testowanie aktywności w izolacji od świata zewnętrznego przez zastępowanie metod takich jakstartService()isendBroadcast(). -
Dodano obsługę używania JUnitParams z
AndroidJUnitRunner. -
Zacznij obsługiwać
@UiThreadTestna poziomie podstawowego narzędzia do uruchamiania testów i wycofaj@UiThreadTestRule– umożliwia to używanie adnotacji@UiThreadTestbezpośrednio w metodach z adnotacjami@Beforei@After. -
@SdkSupressadnotacja obsługuje terazmaxSdkVersionwartość (problem 37067792) -
-e classLoader– umożliwia przekazywanie modułów ładujących klasy za pomocą argumentów narzędzia uruchamiającego. -
-e filter– Dodanie obsługi niestandardowych filtrów JUnit, które można określać za pomocą argumentów narzędzia do uruchamiania -
-e runnerBuilder– umożliwia deweloperom udostępnianie własnych implementacjiRunnerBuilder, które mogą określać, czy i jak można je uruchamiać w przypadku konkretnej klasy.
-
- Reguły
ProviderTestRule– nowy interfejs API do testowania obiektówContentProvidergetActivityResult()iActivityResultMatchers– nowy interfejs API do pobierania wyniku aktywności, która wywołała funkcjęsetResult()
- AndroidTestOrchestrator
- Android Test Orchestrator
zapewnia nowy sposób zbierania i przeprowadzania testów, z naciskiem na
poprawność i izolację. Orchestrator to niezależny proces instrumentacji, który uruchamia jeden proces narzędzia do instrumentacji dla każdego testu i zbiera wyniki.
- Awarie aplikacji powodują wyłączenie instrumentacji wykonawcy, ale nie orkiestratora, co pozwala na kontynuowanie testów.
- Wymaga zainstalowania pakietu APK narzędzia Orchestrator –
'com.android.support.test:orchestrator:1.0.0' - Wersja 1.0 ma tylko interfejs wiersza poleceń. Planujemy integrację z Androidem Studio i Laboratorium Firebase.
- Android Test Orchestrator
zapewnia nowy sposób zbierania i przeprowadzania testów, z naciskiem na
poprawność i izolację. Orchestrator to niezależny proces instrumentacji, który uruchamia jeden proces narzędzia do instrumentacji dla każdego testu i zbiera wyniki.
Poprawki błędów
- Espresso
- Ulepszona synchronizacja widoku głównego, która znacznie zmniejsza niestabilność
- Naprawianie uszkodzenia pliku
IdlingResourceRegistry - lepszą synchronizację z obiektami
IdlingResource; - Problem 37132680: Espresso nie czeka na zakończenie tworzenia okna przed wykonaniem następnego działania
- Problem 37103280: Espresso powinno dostarczać reguły ProGuard dla konsumentów, aby nie musieli ich dodawać
- Problem 37094726: Espresso Intents zawiera niepotrzebną etykietę aplikacji
- Problem 37093953: Espresso: No available check for null/empty error text
- Problem 37071776:
espresso-corezawiera pliki Guavy.pom - Problem 37062612: NPE w
release() - Problem 37063389: zależności Guava i
espresso-webjako zależnościandroidTestnie kompilują się - Problem 37070533: dodanie obsługi elementu
NavigationVieww bibliotece pomocy Androida
- Runner
-
Naprawianie możliwości używania
@UiThreadTestw połączeniu z@Test(timeout = 123) - Stały argument funkcji
-e notClassrunner - Naprawiono
-e log, aby obsługiwać zestawy testów JUnit3 i JUnit4, a także moduły uruchamiająceParameterizediEnclosed. - Problem 37663530: przed każdą metodą testową i po niej poczekaj, aż zakończą się wszystkie działania.
- Problem 37132680: Espresso nie czeka na zakończenie tworzenia okna przed wykonaniem następnego działania
-
Problem 37123213:
@RequiresDevicezignorowano w interfejsie ABI x86_64 -
Problem 37101485: niektóre argumenty podane w pliku manifestu dla
AndroidJUnitRunner, takie jak rozmiar testu, adnotacja i debugowanie, są ignorowane. - Problem 37082857: wykonywanie testów Espresso w trybie półrównoległym kończy się niepowodzeniem w przypadku obiektów statycznych
-
Problem 37063396: kontekst nie został zainicjowany za pomocą
ProviderTestCase2(powodujeNullPointerException)
-
Naprawianie możliwości używania
- Reguły
- Stały cykl życia
ActivityTestRulew celu ujednolicenia działania w przypadku zwykłej i leniwejActivityTestRuleinicjalizacji - Problem 37079943: poprawka
ServiceTestRule, aby umożliwić ponowne powiązanie - Problem 37109342: dodaj
getActivityResult()iActivityResultMatchers
- Stały cykl życia
- UiAutomator
setUiAutomationFlags()do użycia zUiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES– ta opcja umożliwia korzystanie zUiAutomator, gdy działają inne usługi ułatwień dostępu;- Problem 37082813:
setText()w przypadku pustych obiektówEditTextzgłasza wyjątekNullPointerException, jeśli poziom interfejsu API to 19 lub niższy
Inne ważne zmiany
- Pliki binarne są teraz publikowane w Google Maven
- Zmniejszony rozmiar plików JAR
espresso-coreiespresso-web– w przypadku osadzonych zależności zastosowano teraz ProGuard - Wszystkie pliki
.aarzawierają teraz reguły ProGuard - Dodawanie plików
proguard_library.cfgdo opublikowanych artefaktów - Interfejs
Tapperma nową wersjęsendTap(), którą należy wdrożyć
Współpraca z zewnętrznymi podmiotami
- Espresso
- Runner
- Reguły
Espresso 2.2.2, Runner/Rules 0.5 (22 lutego 2016 r., cicha aktualizacja)
Nowe funkcje
- espresso
- Problem 194253: dodanie obsługi NavigationView w bibliotece pomocy Androida
- Dodano sprawdzanie włączonych animacji i przejść
- Nowy interfejs API
ViewMatcher:withResourceName()
Poprawki błędów
- espresso
- Problem 195331: espresso-core osadza pliki POM Guavy
- Przeniesiono zliczanie zasobów bezczynnych z espresso-contrib
- reguły
- Problem 187249: NPE w
Intents.release()
- Problem 187249: NPE w
- runner
- Problem 196066: argument
-e log truew funkcjiAndroidJUnitRunnernie pomija rzeczywistego testu - Poczekaj na debugera w
onCreate()wykonawcy - Przeniesiono wszystkie obsługiwane adnotacje testowe z platformy do ATSL.
- Usunięto zrzut stosu dotyczący braku JSBridge
- Stała
AndroidAnnotatedBuilder
- Problem 196066: argument
Inne ważne zmiany
ActivityTestRule,UiThreadTestRule,IntentsTestRuleiServiceTestRulesą dostępne w wersji stabilnej- Dodawanie pliku ustawień stylu kodu w celu ujednolicenia formatowania kodu
Espresso 2.2.1, Runner/Rules 0.4 (15 września 2015 r.)
Nowe funkcje
- reguły
- Dodano nowy konstruktor
IntentsTestRule, aby zapewnić pełną zgodność zActivityTestRule.
- Dodano nowy konstruktor
- runner
- Dodano instalację multidex w przypadku specjalnym na poziomach interfejsu API 15 i niższych.
- Dodano filtry wykluczania do klasy i pakietu:
- Uruchamianie wszystkich testów z wyjątkiem tych w określonej klasie:
adb shell am instrument -w -e notClass com.android.foo.FooTest - Uruchamianie wszystkich testów z wyjątkiem jednego:
adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo - Uruchamianie wszystkich testów z wyjątkiem określonego pakietu:
adb shell am instrument -w -e notPackage com.android.foo.bar
- Uruchamianie wszystkich testów z wyjątkiem tych w określonej klasie:
Współpraca z zewnętrznymi podmiotami
- espresso
- 157911: Dodaj dopasowanie widoku dla typu danych wejściowych w obiekcie
EditText - 157912: dodaj dopasowanie widoku do dopasowywania tekstu błędu w obiekcie
EditText - 150674: Dodaj obsługę
DrawerActionsszuflad o dowolnym kierunku grawitacji - 150744:
DrawerActionsnie wycieka jużparentListener - 153303: grawitacja określona w sprawdzaniu „is the drawer open or closed” (czy szuflada jest otwarta czy zamknięta)
- 157910: Dodaj fabryki działań
DrawerLayoutotwierania i zamykania
- 157911: Dodaj dopasowanie widoku dla typu danych wejściowych w obiekcie
Poprawki błędów
- espresso
ViewActions.closeSoftKeyboard()zapewnia teraz, że klawiatura ekranowa jest całkowicie ukryta- Rozwiązaliśmy problem z synchronizacją metody
Espresso.pressBack()w Espresso na poziomie API 21 i nowszym. - Naprawiono synchronizację animacji zamykania klawiatury na poziomie interfejsu API 23
- reguły
- Poprawiono
ServiceTestRulena poziomie API 23. FunkcjastartService()musi być zawsze wywoływana z jawnym parametremIntent.
- Poprawiono
- runner
- Naprawiono obsługę uszkodzonego Gradle
JaCoCo - Naprawiono obsługę dzielenia testów
- Rozwiązaliśmy problem z niespójnym stanem w programie do uruchamiania testów po przekroczeniu limitu czasu testów w stylu
JUnit3.
- Naprawiono obsługę uszkodzonego Gradle
Inne ważne zmiany
- Poprawki Javadoc i ulepszenia komunikatów o błędach
- Ignorowanie metod
suite()i nieignorowanie błędów inicjowania podczas korzystania z filtrów metod
Espresso 2.2 / ATSL 0.3 (2015-06-09)
Nowe funkcje
- espresso-web 2.2
- Nowa pomoc na poziomie
WebView
- Nowa pomoc na poziomie
- espresso-core 2.2
- Przeniesiono do korzystania z daggera w wersji 2
- Przeniesiono do korzystania z biblioteki hamcrest w wersji 1.3
- espresso-contrib 2.2
- Sprawdzanie ułatwień dostępu
DrawerActionswsparcie grawitacyjne,
- rules 0.3
DisableOnAndroidDebugreguła
- runner 0.3
- Uaktualnianie z JUnit w wersji 4.10 do JUnit w wersji 4.12
- Przeniesiono na Hamcrest w wersji 1.3
Poprawki błędów
- Naprawiono
DrawerActionswyciekParentListener - Niepowodzenie założenia jest teraz traktowane jako test do zignorowania, a nie test zakończony niepowodzeniem.
- Naprawiono wyciek instancji aktywności w usłudze
MonitoringInstrumentationprzezExecutorService - Naprawiono problem z osieroconymi działaniami, które utknęły na etapie zatrzymania
- Zaktualizowaliśmy
Until.scrollFinished(), aby zwracać wartość „true”, jeśli nie wygenerowano żadnych zdarzeń przewijania. Ochrona przed potencjalnym błędem NPE wUiObject2#setText().
Espresso 2.1, Test Runner/Rules 0.2 i UIAutomator 2.1.0 (21 kwietnia 2015 r.)
Zmiany powodujące niezgodność
- Artefakt narzędzia do uruchamiania testów został podzielony na 2 części, a jego nazwa została zmieniona z
com.android.support.test:testing-support-lib:0.1nacom.android.support.test:runner:0.2icom.android.support.test:rules:0.2.
Nowe funkcje
- espresso-intents: interfejs API podobny do Mockito, który umożliwia hermetyczne testowanie interaktywności przez weryfikowanie i podstawianie wychodzących intencji przez autorów testów.
IntentsTestRule: rozszerzaActivityTestRule, inicjuje i zwalnia Espresso-Intents w funkcjonalnych testach interfejsu
- espresso-core
ViewActions: dodano możliwość uruchamiania globalnych asercji przed wykonaniem działań. Jest to przydatne w przypadku innych platform, które bazują na Espresso, aby weryfikować stan hierarchii widoków podczas wykonywania istniejącego pakietu testów Espresso.ViewMatchers.withContentDescription()resIdprzepełnienie
- reguły
ActivityTestRule: Ta reguła umożliwia testowanie funkcjonalne pojedynczej aktywności.- Adnotacje
UiThreadRuleiUiThreadTest: ta reguła pozwala na wykonanie metody testowej oznaczonej adnotacjąUiThreadTestw głównym wątku aplikacji (lub wątku interfejsu użytkownika). ServiceTestRule: ta reguła umożliwia testowanie funkcjonalne usługi.
- runner
ApplicationLifecycleCallback: wywołanie zwrotne do monitorowania zdarzeń cyklu życia aplikacji- Wszystkie argumenty narzędzia do uruchamiania można teraz określać w pliku manifestu Androida za pomocą tagu
<meta-data>.
- UIAutomator
UiDevice.dumpWindowHierarchy()może teraz zaakceptowaćFilelubOutputStream.
Poprawki błędów
- espresso
- Wyszukiwarka kursora zwraca teraz wartość
false, jeśli nie znaleziono kolumny, dzięki czemu biblioteka Hamcrest może przejść do następnego kursora. NullPointerExceptionzPreferenceMatcherswithTitlenie występuje już- Wyrejestrowanie bezczynnego zasobu nie powoduje już, że Espresso uważa, że mamy zajęte bezczynne zasoby.
- Zaktualizowana wersja adnotacji Support Annotations używana przez Espresso Contrib
- Wyszukiwarka kursora zwraca teraz wartość
- runner
AndroidJUnit4pomija teraz testy z nieudanymi założeniami
- UIAutomator
- Uruchamianie obserwatorów, aby zapobiec
StaleObjectException
- Uruchamianie obserwatorów, aby zapobiec
Inne ważne zmiany
- Dodano lepszy komunikat o błędzie, który jest wyświetlany, gdy nie można wpisać tekstu za pomocą ciągu znaków innych niż łacińskie.
UIAutomator 2.0 (12.03.2015)
UI Automator jest teraz oparty na Android Instrumentation, a testy możesz tworzyć i uruchamiać za pomocą polecenia ./gradlew connectedCheck.
Espresso w wersji 2.0, Test Runner w wersji 0.1 (data wydania: 19 grudnia 2014 r.)
Zmiany powodujące niezgodność
- Espresso zostało przeniesione do nowej przestrzeni nazw z
android.support.test.espressonaandroid.support.test.espresso - Zmieniono nazwy artefaktów Espresso.
espresso-1.1.jarto terazespresso-core-release-2.0.jar- Interfejs
IdlingResourcezostał przeniesiony do osobnej biblioteki:espresso-idling-resource-release-2.0.jar CountingIdlingResourceznajduje się teraz wespresso-contrib-release-2.0.jar(tak jak zawsze powinno być).
- Opcjonalna zależność od biblioteki Guava została usunięta z publicznego interfejsu API, aby umożliwić ponowne spakowanie tej zależności i uniknąć kolizji DEX (głównego źródła problemów podczas programowania). Dotyczy to tych metod:
ViewAssertion.check()HumanReadables.getViewHierarchyErrorMessage()
Nowe funkcje
- Działania
ViewActionsreplaceText()openLink()- Przesuń w górę i w dół
- espresso-contrib
RecyclerViewActions: Obsługuje interakcje zRecyclerViewsPickerActions: obsługuje interakcje z selektoramiDateiTime.
- Matchers
RootMatchersisPlatformPopup()
ViewMatchersisJavascriptEnabled()withSpinnerText()withHint()isSelected()hasLinks()
LayoutMatchers: narzędzia do testowania układu w kontekście lokalizacjiCursorMatchers: zbiór funkcji dopasowujących dla obiektówCursor
- Asercje
PositionAssertions, w tymisLeftOf()iisAbove(): kolekcjaViewAssertionsdo sprawdzania względnego położenia elementów na ekranie.LayoutAssertions: asercje do testowania układu w kontekście lokalizacji
- Aplikacja testowa: wiele nowych przykładowych aktywności i testów
- Inne
Espresso.unregisterIdlingResources()iEspresso.getIdlingResources(): zapewnia dodatkową elastyczność podczas pracy zIdlingResourcesViewInteraction.withFailureHandler(): Umożliwia zastąpienie procedury obsługi błędów zonView()- Obsługa
onData()w przypadkuAdapterViewsz użyciemCursorAdapters
Poprawki błędów
ViewMatchers.isDisplayed()odpowiada wyświetleniom, które zajmują cały ekran, ale nie są już wyświetlane w mniej niż 90%- Wykonanie działania przesuwania w przypadku wywołania
DrawerActions.openDrawer()nie powoduje jużIdlingResourceTimeoutException
Inne ważne zmiany
- Przejście z kompilacji za pomocą Maven na Gradle
- Przeniesiono zależności Espresso (Guava, Dagger, Hamcrest), aby uniknąć kolizji DEX.
- Zmiana, która powoduje zwracanie informacji o powodzeniu lub niepowodzeniu rejestracji i wyrejestrowania nieużywanych zasobów
- Obsługa wersji Lollipop: umieść
message.recycle()za interfejsem, aby uwzględnić zmiany związane z wersją. - Zmieniono docelowy poziom pakietu SDK na 21 – dotyczy to głównie aplikacji testowej.
Wersja 1.1 (data publikacji: 2014-01-08)
Espresso
- Nowe
swipeLeftiswipeRightViewActions - Obsługa wielu okien: zaawansowana funkcja, która umożliwia wybór okna docelowego, w którym Espresso ma wykonać operację.
- Ulepszenia w
TypeTextAction: umożliwia wpisywanie tekstu w widoku z wcześniejszym ustawieniem ostrości, co ułatwia dodawanie tekstu. - Liczne poprawki błędów
Biblioteka Espresso Contrib
- Ta nowa biblioteka zawiera funkcje, które uzupełniają Espresso, ale nie są częścią biblioteki podstawowej.
- Nowa
DrawerActionsdo obsługiDrawerLayout: zależy od Biblioteki pomocy Androida, dlatego nie umieszczamy jej w podstawowej bibliotece Espresso.
Przykładowe testy
- Te testy zostały przeniesione do tego samego pakietu co aplikacja testowa.
- Pliki POM Maven zostały poprawione, aby usunąć zduplikowane zależności guava, więc
mvn installpowinny teraz działać.