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

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

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ływalną odpowiedź, co umożliwia przeprowadzanie testów 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 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.

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 nieudanego wczytywania klas, chyba że użytkownik wczytuje określone klasy, dodając argument -e narzędzia do uruchamiania klas.
    • 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 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

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 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.

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-core osadza pliki Guavy .pom
    • Problem 37062612: NPE w  release()
    • Problem 37063389: zależności Guava i espresso-web jako androidTest nie kompilują się
    • Problem 37070533: dodanie obsługi NavigationView w bibliotece pomocy Androida
  • Runner
    • Naprawianie możliwości używania @UiThreadTest w połączeniu z  @Test(timeout = 123)
    • Stały argument -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 – wbudowane zależności mają teraz zastosowany ProGuard
  • Wszystkie pliki .aar zawierają teraz reguły ProGuard
  • Dodawanie proguard_library.cfg plików do opublikowanych artefaktów
  • Interfejs Tapper ma nową wersję sendTap(), którą należy wdrożyć

Wkład zewnętrzny

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

Inne ważne zmiany

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

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ę DrawerActions szuflad o dowolnym kierunku grawitacji
    • 150744: DrawerActions nie wycieka już parentListener
    • 153303: Gravity specified on the "is the drawer open or closed" checks
    • 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, startService() musi być zawsze wywoływana z wyraźnym Intent
  • 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

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
  • 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
    • 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 do 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 jako test, który się nie powiódł.
  • Naprawiono wyciek instancji aktywności w MonitoringInstrumentation przez ExecutorService
  • 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 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.
    • IntentsTestRule: rozszerza ActivityTestRule, 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() resId przeciążenie
  • 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 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ć File lub OutputStream.

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.
    • NullPointerExceptionPreferenceMatchers 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 zapobiegać StaleObjectException

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.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 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
    • 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() i 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 zasilanego przez 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

  • 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 swipeLeft i swipeRight 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 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 DrawerActions do obsługi DrawerLayout: 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ć.