Archiwum informacji o wersji testowej

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
  • 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}
  • 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ą coverageFile w AndroidJUnitRunner. Wygenerowane pliki pokrycia zostaną nadpisane.
    • Przekaż flagę -e clearPackageData, jeśli chcesz, aby koordynator wykonywał polecenia pm clear context.getPackageName()pm 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

Espresso 3.0.2-alpha1, Runner 1.0.2-alpha1, Rules 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (2017-12-05)

  • Espresso

    • Intents ma teraz wywoływaną odpowiedź, dzięki czemu testy mogą być wykonywane po przechwyceniu wywołanego zamiaru, ale przed zwróceniem obiektu Instrumentation.ActivityResult.
  • Runner

    • Wydzielenie artefaktu monitor maven com.android.support.test:monitor:<version>dla użytkowników, którzy potrzebują MonitoringInstrumentation bez 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ł monitor jako zależność modułu runner.

    • Dodano flagę newRunListenerOrderMode. Gdy true, zdefiniowane przez użytkownika odbiorniki działają przed odbiornikami domyślnymi. (Spodziewamy się, że to zachowanie stanie się domyślne).

    • Problem 65828576: TestRequestBuilder ulega 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.

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 pomijanie onTimeout(), gdy do maszyny wirtualnej jest podłączony debuger kroków.
    • Problemy 64024656, 6424758664525881: nie zgłaszaj błędów w przypadku nieudanego wczytywania klas, chyba że użytkownik wczytuje określone klasy, dodając argument -e class runner.
    • Problem 64877246: dodanie brakujących klas do pliku JAR źródeł.
  • Runner

    • Uproszczona logika ShardingFilter.
    • Problem 65025743: filtr @RequiresDevice obsługuje teraz emulatory FTL.
  • 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

Znane problemy

  • AndroidTestOrchestrator
    • Argumenty narzędzia -e numShards-e shardIndex nie są obecnie obsługiwane.
    • Testy parametryzowane nie są obecnie obsługiwane.

Nowe funkcje

  • Reguły
  • 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.

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-core zawiera pliki Guavy.pom
    • Problem 37062612: NPE w  release()
    • Problem 37063389: zależności Guava i espresso-web jako zależności androidTest nie kompilują się
    • Problem 37070533: dodanie obsługi elementu NavigationView w bibliotece pomocy Androida
  • Runner
    • Naprawianie możliwości używania @UiThreadTest w połączeniu z  @Test(timeout = 123)
    • Stały argument funkcji -e notClass runner
    • Naprawiono -e log, aby obsługiwać zestawy testów JUnit3 i JUnit4, a także moduły uruchamiające Parameterized i Enclosed.
    • 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: @RequiresDevice zignorowano 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 (powoduje NullPointerException)

Inne ważne zmiany

  • Pliki binarne są teraz publikowane w Google Maven
  • Zmniejszony rozmiar plików JAR espresso-coreespresso-web – w przypadku osadzonych zależności zastosowano teraz ProGuard
  • Wszystkie pliki .aar zawierają teraz reguły ProGuard
  • Dodawanie plików proguard_library.cfg do opublikowanych artefaktów
  • Interfejs Tapper ma nową wersję sendTap(), którą należy wdrożyć

Współpraca z zewnętrznymi podmiotami

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()
  • runner
    • Problem 196066: argument -e log true w funkcji AndroidJUnitRunner nie 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

Inne ważne zmiany

  • ActivityTestRule, UiThreadTestRule, IntentsTestRule i ServiceTestRule są 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ść z ActivityTestRule.
  • 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

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ę DrawerActions szuflad o dowolnym kierunku grawitacji
    • 150744: DrawerActions nie 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ń DrawerLayout otwierania i zamykania

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 ServiceTestRule na poziomie API 23. Funkcja startService() musi być zawsze wywoływana z jawnym parametrem Intent.
  • runner
    • Naprawiono obsługę uszkodzonego GradleJaCoCo
    • 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.

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
  • 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
    • DrawerActions wsparcie grawitacyjne,
  • rules 0.3
    • DisableOnAndroidDebug reguł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 DrawerActions wyciek ParentListener
  • 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 MonitoringInstrumentation przez ExecutorService
  • 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 w UiObject2#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.1 na com.android.support.test:runner:0.2com.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: rozszerza ActivityTestRule, 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() resId przepełnienie
  • reguły
    • ActivityTestRule: Ta reguła umożliwia testowanie funkcjonalne pojedynczej aktywności.
    • Adnotacje UiThreadRuleUiThreadTest: ta reguła pozwala na wykonanie metody testowej oznaczonej adnotacją UiThreadTest w 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ć File lub OutputStream.

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.
    • NullPointerException z PreferenceMatchers withTitle nie 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
  • runner
    • AndroidJUnit4 pomija teraz testy z nieudanymi założeniami
  • UIAutomator
    • Uruchamianie obserwatorów, aby zapobiec StaleObjectException

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.espresso na android.support.test.espresso
  • Zmieniono nazwy artefaktów Espresso.
    • espresso-1.1.jar to teraz espresso-core-release-2.0.jar
    • Interfejs IdlingResource został przeniesiony do osobnej biblioteki:espresso-idling-resource-release-2.0.jar
    • CountingIdlingResource znajduje się teraz w espresso-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
    • ViewActions
      • replaceText()
      • openLink()
      • Przesuń w górę i w dół
    • espresso-contrib
      • RecyclerViewActions: Obsługuje interakcje z RecyclerViews
      • PickerActions: obsługuje interakcje z selektorami DateTime.
  • Matchers
    • RootMatchers
      • isPlatformPopup()
    • ViewMatchers
      • isJavascriptEnabled()
      • withSpinnerText()
      • withHint()
      • isSelected()
      • hasLinks()
    • LayoutMatchers: narzędzia do testowania układu w kontekście lokalizacji
    • CursorMatchers: zbiór funkcji dopasowujących dla obiektów Cursor
  • Asercje
    • PositionAssertions, w tym isLeftOf()isAbove(): kolekcja ViewAssertions do 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()Espresso.getIdlingResources(): zapewnia dodatkową elastyczność podczas pracy z IdlingResources
    • ViewInteraction.withFailureHandler(): Umożliwia zastąpienie procedury obsługi błędów z onView()
    • Obsługa onData() w przypadku AdapterViews z użyciem CursorAdapters

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 swipeLeftswipeRight ViewActions
  • 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 DrawerActions do obsługi DrawerLayout: 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ć.