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
- Mięśnie głębokie
- 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)
- Mięśnie głębokie
- Nowy artefakt rozszerzenia Kotlin core-ktx! Zawiera przyjazny dla języka Kotlin interfejs API ActivityScenario.launchActivity.
- Nowy interfejs ActivityScenario API do uruchamiania aktywności z niestandardowymi intencjami
- Nowy interfejs ActivityScenario API do odbierania 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 przyjazny dla języka 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”.
- Oczekuj 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.
- Mięśnie głębokie
- 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 (16 kwietnia 2018 r.)
- 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 niedopuszczalne zaniedbanie . W związku z tym w tej wersji wprowadziliśmy zmianę w publicznym interfejsie API, która może spowodować problemy. 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 wyciekłego 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”, zamiast tego plik POM espresso-intents będzie ją pobierać. Dla programistów nie powinno to stanowić problemu, ponieważ biblioteki espresso-intents nie można używać bez biblioteki espresso-core.
- Problem 65486414: Espresso missing guava dependency
- 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 powinno zależeć od uruchamiającego testy
- Problem 73722050: pakiety espresso-contrib 3.0.2-alpha1 zawierają 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 zbyt duży na potrzeby transakcji w binderze. AJUR musi zgłaszać błędy do AM za pomocą IPC Binder, dlatego musimy zadbać o to, aby nie przekroczyć 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ącoverageFileklasy AndroidJUnitRunner. Wygenerowane pliki pokrycia są nadpisywane. - Przekaż flagę
-e clearPackageData, jeśli chcesz, aby orkiestrator wykonywał poleceniapm clear context.getPackageName()ipm clear targetContext.getPackageName()między wywołaniami testów. Pamiętaj, że kontekst w poleceniu clear to 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 zatrzymane 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ływalną odpowiedź, co umożliwia przeprowadzanie testów 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 ani 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 nieudanego wczytywania klas, chyba że użytkownik wczytuje określone klasy, dodając argument
-enarzędzia do uruchamiania klas. - 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 dotyczącą aranżera.
- Testy są teraz oznaczane jako nieudane, jeśli proces zdalny ulegnie awarii.
- Obsługuje teraz ignorowane przypadki testowe.
- Teraz wyklucza z stopki zignorowane przypadki testowe, aby dopasować je do starszych wyników.
- Rozwiązaliśmy problemy z uprawnieniami w czasie działania aplikacji. Raporty z testów są teraz zapisywane na karcie SD na urządzeniach z Androidem 7.0 (poziom interfejsu API 24) i nowszym.
Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (25 lipca 2017 r., komunikat)
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, możesz napotkać problemy.
- Usuń wszelkie odniesienia do zacienionego koloru Guava (
.core.deps.guava.) - Uaktualnij Bibliotekę pomocy do wersji 25.4.0 lub nowszej.
- Usuń wszelkie 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 interfejsie 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 do synchronizacji 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
espresso-coredopasowania widoku:hasBackground()pasuje do zasobu rysowalnego tła obiektuViewhasTextColor()pasuje do koloru obiektuTextView
- Nowe metody działania widoku:
- Ulepszona czynność
scrollTo()wyświetlania, która działa z elementami podrzędnymi elementuListView repeatedlyUntil()– wykonuje podaneViewActionw widoku, dopóki widok nie będzie zgodny z odpowiednimViewMatchers
- Ulepszona czynność
- Nowe metody Espresso:
pressBackUnconditionally()– podobna dopressBack(), ale nie zgłasza wyjątku, gdy Espresso nawiguje.noActivity()– Nie musisz czekać na aktywność przed wykonaniemViewActionlubViewAssertion.onIdle()– Zapętla wątek główny, dopóki aplikacja nie przejdzie w stan bezczynności.onIdle(Callable<T>)– Podobne doonIdle(), 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 interfejsie 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 oznaczonych 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 do uruchamiania. -
-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 po jednym procesie wykonawczym instrumentacji dla każdego testu i zbiera wyniki.
- Awarie aplikacji powodują wyłączenie instrumentacji wykonawcy, ale nie orkiestratora, co pozwala na kontynuowanie zestawu testów.
- Wymaga zainstalowania pliku 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 po jednym procesie wykonawczym 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 - Lepsza synchronizacja 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-coreosadza pliki Guavy.pom - Problem 37062612: NPE w
release() - Problem 37063389: zależności Guava i
espresso-webjakoandroidTestnie kompilują się - Problem 37070533: dodanie obsługi
NavigationVieww bibliotece pomocy Androida
- Runner
-
Naprawianie możliwości używania
@UiThreadTestw połączeniu z@Test(timeout = 123) - Stały argument
-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
- Naprawiono
ActivityTestRulecykl życia, aby ujednolicić działanie w przypadku zwykłej i leniwejActivityTestRuleinicjalizacji. - Problem 37079943: poprawka
ServiceTestRuleumożliwiająca ponowne powiązanie - Problem 37109342: dodaj
getActivityResult()iActivityResultMatchers
- Naprawiono
- UiAutomator
setUiAutomationFlags()do użytku 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– wbudowane zależności mają teraz zastosowany ProGuard - Wszystkie pliki
.aarzawierają teraz reguły ProGuard - Dodawanie
proguard_library.cfgplików do opublikowanych artefaktów - Interfejs
Tapperma nową wersjęsendTap(), którą należy wdrożyć
Wkład zewnętrzny
- 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 bezczynnych zasobów 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 - Przeniesienie wszystkich obsługiwanych adnotacji testowych z platformy do ATSL
- Usunięto zrzut stosu dotyczący braku JSBridge
- Stały
AndroidAnnotatedBuilder
- Problem 196066: argument
Inne ważne zmiany
ActivityTestRule,UiThreadTestRule,IntentsTestRuleiServiceTestRulesą już 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, który jest w pełni zgodny 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:
Wkład zewnętrzny
- 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: Gravity specified on the "is the drawer open or closed" checks
- 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,startService()musi być zawsze wywoływana z wyraźnymIntent
- Poprawiono
- runner
- Naprawiono obsługę uszkodzonego pliku Gradle
JaCoCo - Naprawiono obsługę dzielenia testów
- Naprawiono niespójny stan w programie do uruchamiania testów po przekroczeniu limitu czasu testów w stylu
JUnit3
- Naprawiono obsługę uszkodzonego pliku Gradle
Inne ważne zmiany
- Poprawki Javadoc i ulepszone komunikaty 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 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 do Hamcrest w wersji 1.3
Poprawki błędów
- Naprawiono
DrawerActionswyciekParentListener - Niepowodzenie założenia jest teraz traktowane jako test do zignorowania, a nie jako test, który się nie powiódł.
- Naprawiono wyciek instancji aktywności w
MonitoringInstrumentationprzezExecutorService - Naprawiono problem z osieroconymi działaniami, które utknęły na etapie zatrzymania
- Zaktualizuj
Until.scrollFinished(), aby zwracać wartość „true”, jeśli nie wygenerowano żadnych zdarzeń przewijania. Zapobieganie potencjalnemu błędowi 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.
IntentsTestRule: rozszerzaActivityTestRule, inicjuje i zwalnia Espresso-Intents w funkcjonalnych testach interfejsu
- espresso-core
ViewActions: dodaliśmy możliwość uruchamiania globalnych asercji przed uruchomieniem działań. Jest to przydatne w przypadku innych platform, które bazują na Espresso, aby weryfikować stan hierarchii widoków podczas wykonywania istniejącego zestawu testów Espresso.ViewMatchers.withContentDescription()resIdprzeciążenie
- 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 UI) 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
- Funkcja dopasowywania 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
- Funkcja dopasowywania kursora zwraca teraz wartość
- runner
AndroidJUnit4pomija teraz testy z nieudanymi założeniami
- UIAutomator
- Uruchamianie obserwatorów, aby zapobiegać
StaleObjectException
- Uruchamianie obserwatorów, aby zapobiegać
Inne ważne zmiany
- Dodawanie lepszego komunikatu o błędzie, gdy nie możemy wpisać tekstu za pomocą ciągu znaków niealfabetycznych
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 publikacji: 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 Guavy została usunięta z publicznego interfejsu API, aby umożliwić ponowne spakowanie zależności od Guavy 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 przypadkuAdapterViewszasilanego przezCursorAdapters
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
- Przełączono kompilację z Maven na Gradle
- Przeniesiono zależności Espresso (Guava, Dagger, Hamcrest), aby uniknąć kolizji DEX.
- Zmiana, aby zwracać powodzenie lub niepowodzenie podczas rejestrowania i wyrejestrowywania nieużywanych zasobów
- Obsługa 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 zaznaczeniem, 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: ma zależność od Biblioteki pomocy Androida, dlatego nie umieszczamy jej poza podstawową biblioteką 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ć.