Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

테스트 출시 노트 자료실

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(2018-12-13)

이 버전은 AndroidX Test 1.1.0의 안정적인 출시입니다.

  • Core
    • 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)

  • Core
    • 새로운 core-ktx kotlin 확장 아티팩트! kotlin 친화적인 ActivityScenario.launchActivity API를 포함합니다.
    • 새로운 ActivityScenario API를 통해 사용자설정 인텐트로 활동을 실행합니다.
    • 새로운 ActivityScenario API를 통해 활동 결과를 수신합니다.
    • ActivityScenario를 종료할 수 있게 합니다.
  • Espresso
    • withResourceNameMatcher와 HumanReadables를 수정하여 API 28과 호환될 수 있도록 합니다.
    • ReplaceTextAction의 설명을 업데이트하여 stringToBeSet를 포함합니다.
    • Robolectric 일시중지 루퍼 모드에서 Espresso를 지원합니다.
  • JUnit
    • 새로운 ActivityScenarioRule API로 테스트 설정 및 해제 시 활동을 자동 실행하고 종료합니다.
    • 새로운 junit-ktx kotlin 확장 프로그램 아티팩트! kotlin 친화적인 ActivityScenarioRule API를 포함합니다.
  • Runner
    • 패키지를 받을 때 -e package 및 -e testFile의 동작이 일관되도록 합니다.
  • Truth
    • bool, parcelable, parcelableAsType BundleSubject API를 추가합니다.

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(2018-10-24)

  • 전체
    • minSdkVersion을 14로 설정하고 targetSdkVersion을 28로 설정합니다.
  • Espresso
    • 문자열이 아닌 유형과 호환되도록 withContentDescription을 수정합니다.
    • Robolectric에서 Espresso 사용 지원을 추가합니다.
    • 문제 72798625: Espresso ViewMatchers.withText는 textAllCaps가 사용 설정되면 작동하지 않습니다.
    • 모션 이벤트 시퀀스 주입 지원을 추가합니다.
  • 인텐트
    • 인텐트 목록을 검색할 수 있는 베타 API를 추가합니다. 이 API는 새로운 truth 어설션에 사용할 수 있습니다.
  • Runner
    • 인스턴트 앱 지원을 추가합니다.
    • androidx.test.runner.AndroidJUnit4를 지원 중단하고 androidx.test.ext.junit.runners.AndroidJUnit4로 교체합니다.
  • Monitor
    • androidx.test.InstrumentationRegistry를 지원 중단하고 androidx.test.platform.app.InstrumentationRegistry와 androidx.test.core.app.ApplicationProvider로 교체합니다.
  • AndroidTestOrchestrator
    • 'coverage' 및 'coverageFilePath' 인수가 모두 전달되는 때에만 orchestrator 적용 범위 처리를 사용 설정합니다.
    • -debug가 설정되어 있지만 ATO 테스트 사례를 나열하지 않는 경우에만 디버거를 기다립니다. 새로운 orchestratorDebug 플래그가 추가되어 orchestrator 자체를 디버깅합니다.
  • Core
    • 새로운 아티팩트! 다음에 관한 로컬 및 기기 내 테스트를 모두 지원하는 새로운 API를 포함합니다.
      • 컨텍스트 검색: ApplicationProvider
      • 활동 수명 주기 제어: ActivityScenario(베타)
      • MotionEvent, PackageInfo용 빌더
      • Parceables 유틸리티 클래스
  • Truth
    • 새로운 아티팩트! 알림, 인텐트, 번들, Parcelable 및 MotionEvent에 관한 맞춤 truth 주제를 포함합니다.
  • JUnit
    • 새로운 아티팩트! 로컬 및 기기 내 테스트를 모두 지원하는 JUnit runner 클래스 androidx.test.ext.junit.runners.AndroidJUnit4를 포함합니다.

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
    • API에 관한 브레이킹 체인지:
      • 문제 64062890을 통해 공개 API에서 Guava Optional을 사용했다는 것을 발견했습니다. 이 문제는 Google의 실수입니다. 이 문제를 해결하기 위해 이번 출시에서는 공개 API에 관한 브레이킹 체인지를 포함했습니다. 'android.support.test.espresso.util' 네임스페이스 아래에 EspressoOptional이라는 어글리(ugly) 래퍼를 도입하여 Guava Optional 클래스를 감쌌습니다. 유출된 Guava Optional API를 사용 중인 개발자는 이 새 버전으로 업데이트하는 동안 EspressoOptional을 사용하도록 가져오기와 참조를 변경해야 합니다. 이로 인해 불편을 끼쳐드려 죄송합니다.
    • 오류를 방지하기 위해 onView() 및 onData() API는 이제 @CheckReturnValue로 표시됩니다.
    • espresso-core POM 파일이 'rules' 종속성을 가져오지 않고 espresso-intents POM이 가져오도록 수정했습니다. espresso-core가 없으면 espresso-intents를 사용할 수 없으므로 이는 개발자를 위한 NoOp 변경사항입니다.
    • 문제 65486414: Espresso에 guava 종속성 누락
    • 문제 65576174: Espresso IdlingResourceRegistry.sync로 인해 두 번째 테스트 실패
    • 문제 65568629: IdlingRegistry를 사용하지 않는 Espresso.onIdle
    • 문제 69333598: espresso 3.0.1이 android 라이브러리 모듈의 play-services-auth:11.6.0과 호환되지 않음
    • 문제 64062890: AdapterViewProtocol 인터페이스에 의해 노출되는 내부 선택사항 유형
    • 문제 64091847: Espresso 3.0.0이 테스트 실행기에 의존해서는 안 됨
    • 문제 73722050: espresso-contrib 3.0.2-alpha1 패키지 android.arch.{lifecycle/core} 클래스
  • Espresso-remote
    • 새로운 아티팩트입니다. espresso-core 아티팩트 외부에서 Espresso의 다중 프로세스 기능을 모두 분리했습니다. 이제 더 깔끔하고 espresso-core의 전체 크기와 메서드 수가 크게 감소됩니다.
  • Runner
    • 바인더 트랜잭션에 비해 너무 큰 경우 스택 추적을 잘라냅니다. AJUR은 바인더 IPC를 통해 AM에 오류를 다시 보고해야 하므로 바인더 트랜잭션 한도(프로세스당 1MB)를 초과하지 않아야 합니다.
    • 문제 65828576: @Ignore를 사용하여 클래스에서 테스트를 실행할 때 TestRequestBuilder 충돌 발생
    • 문제 37057596: @BeforeClass에서 오류가 처리되지 않음
  • Rules
    • 수명주기 변경 후에 테스트 중인 활동 관련 참조를 사용 허가해야 합니다. 이제 테스트 기간 동안 #getActivity()에서 가져온 참조를 사용하여 활동을 직접 조작할 수 있습니다. 활동을 마치고 다시 시작하면 이제 #getActivity()에 의해 반환되는 참조가 항상 활동의 현재 인스턴스를 가리킵니다.
    • 문제 64389280: GrantPermissionRule이 WRITE_EXTERNAL_STORAGE를 제공하지 않음
    • 문제 37065965: 방향 변경 후 ActivityTestRule이 활동을 유출함
    • 문제 75254050: 구성 변경 중에 ActivityTestRule이 활동 인스턴스를 업데이트하지 않음
    • 문제 64464625: 활동의 finish() 메서드에서 UI 작업을 실시할 수 없음
  • AndroidTestOrchestrator
    • -e coverage true -e coverageFilePath /sdcard/foo/ 플래그를 전달하여 지정된 위치에서 노출 범위 파일을 생성합니다. 이 경우 앱이 지정된 위치에 쓸 수 있는 권한이 있어야 합니다. 노출 범위 파일 이름 지정 규칙은 이제 com.foo.Class#method1.ec와 같습니다. 이는 격리된 모드에서 실행하는 경우에만 지원됩니다. 또한 AndroidJUnitRunner의 coverageFile 플래그와 함께 사용할 수 없습니다. 생성된 노출 범위 파일이 서로 덮어쓰기 때문입니다.
    • Orchestrator가 테스트 호출 간에 pm clear context.getPackageName()pm clear targetContext.getPackageName() 명령을 실행하도록 하려면 -e clearPackageData 플래그를 전달합니다. clear 명령의 컨텍스트는 테스트 중인 앱 컨텍스트입니다.
    • 빈 테스트(타겟 내에 @Test 없음)를 실행할 때 테스트 결과가 기존 모드와 다른 문제를 수정했습니다.
    • 문제 72758547: 테스트 Orchestrator로 인해 Jacoco 노출 범위 데이터가 완료되지 않고 마지막 테스트 실행 데이터만 있습니다.
    • 문제 67916042: Android 테스트 Orchestrator: OutOfMemory로 인해 프로세스 충돌 시 실행이 중지됩니다.
    • 문제 77752735: TransactionTooLargeException으로 Orchestrator가 충돌함
    • 문제 77549481: 테스트를 실행할 때마다 테스트 Orchestrator가 "pm clear"를 실행해야 합니다.

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가 이제 호출 가능한 응답을 가지므로, 실행된 인텐트를 캡처한 후 그러나 Instrumentation.ActivityResult 객체를 반환하기 전에 테스트를 실행할 수 있습니다.
  • Runner

    • 테스트 실행 및 JUnit 기능이 없는 MonitoringInstrumentation이 필요한 사용자를 위해 모니터 maven 아티팩트 com.android.support.test:monitor:<version>를 분할합니다.

      Gradle에서는 monitor 모듈을 runner 모듈의 종속 항목으로 자동으로 가져오므로 com.android.support.test:runner:<version>를 사용하는 경우 모든 것이 예상한 대로 작동합니다.

    • 플래그 newRunListenerOrderMode를 추가했습니다. true인 경우 사용자 정의 리스너가 기본 리스너보다 먼저 실행됩니다. 결국 이 동작이 기본값이 될 것으로 예상합니다.

    • 문제 65828576: @Ignore로 주석 처리된 클래스(테스트 실행 또는 JUnit 기능이 없는 독립형)에서 테스트를 실행할 때 TestRequestBuilder가 충돌합니다.

  • AndroidTestOrchestrator

    • 이제 오케스트레이션되지 않은 AndroidJUnitRunner와 동일한 방식으로 빈 테스트를 처리합니다.
    • Orchestrator는 이제 AndroidJUnitRunner의 매우 큰 표준 출력을 처리할 수 있습니다.

Espresso 3.0.1, Runner 1.0.1, Rules 1.0.1, AndroidTestOrchestrator 1.0.1(2017-08-28)

  • Espresso

    • 단계 디버거가 VM에 연결될 때 onTimeout()을 억제하도록 IdlingPolicy 옵션을 추가했습니다.
    • 문제 64024656, 6424758664525881: 사용자가 -e 클래스 러너 인수를 포함하여 특정 클래스를 로드하지 않을 경우 실패한 클래스 로드 관련 오류를 보고하지 않습니다.
    • 문제 64877246: 소스 JAR 파일에 누락된 클래스를 추가합니다.
  • Runner

    • 간소해진 ShardingFilter 논리.
    • 문제 65025743: @RequiresDevice 필터가 이제 FTL 에뮬레이터를 지원합니다.
  • AndroidTestOrchestrator

    • 오류를 중복해서 보고하지 않습니다. 실패 후 테스트 프로세스가 충돌하는 경우 이제 해당 테스트와 관련한 오류가 한 번만 보고됩니다.
    • Orchestrator용 Javadoc를 수정했습니다.
    • 이제 원격 프로세스가 충돌할 경우 테스트가 누락된 것으로 표시됩니다.
    • 이제 무시된 테스트 사례를 처리합니다.
    • 이제 기존 결과와 일치하도록 바닥글에서 무시된 테스트 사례를 제외합니다.
    • 런타임 권한 문제를 수정했습니다. Android 7.0(API 수준 24) 이상에서는 이제 테스트 보고서가 SD 카드에 기록됩니다.

Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0(2017-07-25, 알림)

브레이킹 체인지

  • 모든 아티팩트
    • 15 미만 API 수준 지원 중단 – 사용자에게 업그레이드할 수 있는 시간을 제공하기 위해 최소 SDK는 여전히 API 수준 9를 가리킵니다.
  • Espresso
    • 지원 중단된 android.support.test.espresso.contrib.CountingIdlingResource 클래스를 삭제하고 다음 클래스로 이동했습니다. android.support.test.espresso.idling.CountingIdlingResource
    • Guava가 이제 다른 '내부' 네임스페이스로 jarjar되었습니다. 실수로 Espresso 네임스페이스를 통해 Guava API를 사용할 경우 문제가 발생할 수 있습니다.
      • 샤딩된 Guava(.core.deps.guava.)에 관한 참조를 제거합니다.
      • 지원 라이브러리 버전을 25.4.0 이상으로 업그레이드합니다.

알려진 문제

  • AndroidTestOrchestrator
    • -e numShards-e shardIndex 러너 인수는 현재 지원되지 않습니다.
    • 매개변수화된 테스트는 현재 지원되지 않습니다.

새로운 기능

  • Runner
    • InterceptingActivityFactorySingleActivityFactory - startService()sendBroadcast()와 같은 메서드를 재정의하여 외부 세계와 격리된 상태에서 활동을 테스트할 수 있는 기능을 제공합니다.
    • JUnitParamsAndroidJUnitRunner와 함께 사용할 수 있도록 지원을 추가합니다.
    • 핵심 테스트 실행기 레벨에서 @UiThreadTest 처리를 시작하고 @UiThreadTestRule 사용을 중단합니다. 그러면 @Before@After로 주석 처리된 메서드에서 @UiThreadTest 주석을 직접 사용할 수 있습니다.
    • @SdkSupress 주석이 이제 maxSdkVersion 값을 지원합니다(문제 37067792).
    • -e classLoader - 실행기 인수를 사용하여 클래스 로더를 전달하는 기능을 제공합니다.
    • -e filter - 실행기 인수를 사용하여 지정할 맞춤 JUnit 필터 지원을 추가합니다.
    • -e runnerBuilder – 개발자가 특정 클래스에 대해 실행 가능한지 여부와 실행 방법을 결정할 수 있는 RunnerBuilder의 자체 구현을 제공할 수 있습니다.
  • Rules
  • AndroidTestOrchestrator
    • Android Test Orchestrator는 정확성과 격리를 중심으로 테스트를 수집하고 실행하는 새로운 방법을 제공합니다. Orchestrator는 독립적인 도구 프로세스로서, 테스트별로 하나의 도구 실행기 프로세스를 생성하고 결과를 수집합니다.
      • 애플리케이션이 비정상 종료될 경우 실행기 도구는 중단되지만 Orchestrator는 중단되지 않으므로 테스트 도구 모음을 계속 진행할 수 있습니다.
      • Orchestrator APK를 설치해야 합니다. 'com.android.support.test:orchestrator:1.0.0'
      • 버전 1.0에는 명령줄 인터페이스만 있으며, Android 스튜디오 및 Firebase Test Labs와 통합할 예정입니다.

버그 수정

  • Espresso
    • 루트 보기 동기화를 개선하여 비정상을 획기적으로 줄였습니다.
    • IdlingResourceRegistry 손상 수정
    • IdlingResource 객체 동기화 개선
    • 문제 37132680: Espresso가 대화상자 만들기가 완료될 때까지 기다리지 않고 다음 작업을 이행합니다.
    • 문제 37103280: Espresso가 ProGuard 소비자 규칙을 제공하므로 소비자가 규칙을 추가할 필요가 없습니다.
    • 문제 37094726: Espresso Intents에 불필요한 애플리케이션 라벨이 포함되어 있습니다.
    • 문제 37093953: Espresso: null/빈 오류 텍스트를 확인할 수 없습니다.
    • 문제 37071776: espresso-core가 Guava의 .pom 파일을 삽입합니다.
    • 문제 37062612: release()의 NPE
    • 문제 37063389: Guava 및 espresso-web에서 androidTest 종속 항목이 컴파일되지 않습니다.
    • 문제 37070533: Android 디자인 지원 라이브러리NavigationView 지원을 추가했습니다.
  • Runner
    • @UiThreadTest@Test(timeout = 123)와 함께 사용할 수 있도록 기능을 수정했습니다.
    • -e notClass 실행기 인수를 수정했습니다.
    • JUnit3 및 JUnit4 테스트 도구 모음과 ParameterizedEnclosed 실행기를 지원하도록 -e log를 수정했습니다.
    • 문제 37663530: 각 테스트 방법 전후에 모든 활동이 완료되도록 기다립니다.
    • 문제 37132680: Espresso가 대화상자 만들기가 완료될 때까지 기다리지 않고 다음 작업을 이행합니다.
    • 문제 37123213: @RequiresDevice가 x86_64 ABI에서 무시됩니다.
    • 문제 37101485: AndroidJUnitRunner의 일부 매니페스트 제공 인수(예: 테스트 크기, 주석, 디버그)가 무시됩니다.
    • 문제 37082857: Espresso에서 정적 객체에 관한 일부 동시 로드 테스트 실행이 실패합니다.
    • 문제 37063396: ProviderTestCase2로 컨텍스트가 초기화되지 않습니다(원인 NullPointerException).

기타 중요 변경사항

  • 이제 바이너리가 Google Maven을 통해 게시됩니다.
  • espresso-coreespresso-web JAR 파일 크기 축소 – 이제 삽입된 종속 항목에 ProGuard가 적용됩니다.
  • 이제 모든 .aar 파일에 ProGuard 규칙이 포함됩니다.
  • 출시된 아티팩트에 proguard_library.cfg 파일을 추가했습니다.
  • Tapper 인터페이스에 구현할 새 버전의 sendTap()이 있습니다.

외부 기여

Espresso 2.2.2, Runner/Rules 0.5(2016-02-22, 자동 출시)

새로운 기능

  • espresso
    • 문제 194253: Android 지원 디자인 라이브러리에서 NavigationView 지원 추가
    • 사용 설정된 애니메이션 및 전환 확인 기능을 추가했습니다.
    • ViewMatcher API: withResourceName()

버그 수정

  • espresso
    • 문제 195331: espresso-core가 Guava의 pom 파일을 삽입합니다.
    • 비활성 자료 집계를 espresso-contrib 외부로 이동했습니다.
  • rules
    • 문제 187249: Intents.release()의 NPE
  • runner
    • 문제 196066: AndroidJUnitRunner-e log true 인수가 실제 테스트를 우회하지 않습니다.
    • 실행기 onCreate()에서 디버거를 기다립니다.
    • 모든 지원되는 테스트 주석을 플랫폼 외부와 ATSL 내부로 이동했습니다.
    • JSBridge 없음 관련 스택 추적 덤프를 삭제했습니다.
    • AndroidAnnotatedBuilder를 수정했습니다.

기타 중요 변경사항

  • ActivityTestRule, UiThreadTestRule, IntentsTestRuleServiceTestRule이 베타 단계를 마쳤습니다.
  • 균일한 코드 서식 지정을 위한 코드 스타일 설정 파일을 추가했습니다.

Espresso 2.2.1, Runner/Rules 0.4(2015-09-15)

새로운 기능

  • rules
    • ActivityTestRule과 완벽하게 호환되는 새 IntentsTestRule 생성자를 추가했습니다.
  • runner
    • API 수준 15 이하를 위한 특수 케이스 multidex 설치를 추가했습니다.
    • 클래스 및 패키지에 제외 필터를 추가했습니다.
      • 특정 클래스에 해당하는 테스트를 제외한 모든 테스트 실행: adb shell am instrument -w -e notClass com.android.foo.FooTest
      • 한 가지를 제외한 모든 테스트 실행: adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo
      • 특정 패키지를 제외한 모든 테스트 실행: adb shell am instrument -w -e notPackage com.android.foo.bar

외부 기여

  • espresso
    • 157911: EditText 객체 관련 입력 유형을 위한 보기 매처를 추가합니다.
    • 157912: EditText 객체에서 오류 텍스트를 일치시키기 위한 보기 매처를 추가합니다.
    • 150674: 임의의 중력을 가진 창을 위한 DrawerActions 지원을 추가합니다.
    • 150744: DrawerActions가 더 이상 parentListener를 누출하지 않습니다.
    • 153303: '창의 개폐 여부' 검사에 중력이 지정되었습니다.
    • 157910: 출고 시 DrawerLayout 열기 및 닫기 작업을 추가합니다.

버그 수정

  • espresso
    • ViewActions.closeSoftKeyboard()를 통해 이제 소프트 키보드를 완전히 사라지게 할 수 있습니다.
    • API 수준 21 이상에서 Espresso의 Espresso.pressBack() 메서드와의 동기화 문제를 수정했습니다.
    • API 수준 23에서 키보드 해지 애니메이션의 동기화 문제를 해결했습니다.
  • rules
    • API 수준 23에서 ServiceTestRule을 수정했습니다. 항상 Intent를 명시적으로 사용하여 startService()를 호출해야 합니다.
  • runner
    • 중단된 Gradle JaCoCo 지원 문제를 수정했습니다.
    • 중단된 테스트 샤딩 지원 문제를 수정했습니다.
    • JUnit3 스타일 테스트 시간 초과 후 테스트 실행기의 일관되지 않은 상태를 해결했습니다.

기타 중요 변경사항

  • Javadoc 수정사항 및 오류 메시지 개선사항
  • 메서드 필터를 사용할 때 suite() 메서드를 무시하고 초기화 오류를 무시하지 않습니다.

Espresso 2.2/ATSL 0.3(2015-06-09)

새로운 기능

  • espresso-web 2.2
    • 새로운 WebView 지원
  • espresso-core 2.2
    • dagger v2를 사용하기 위해 이전
    • hamcrest v1.3을 사용하기 위해 이전
  • espresso-contrib 2.2
    • 접근성 검사
    • DrawerActions 중력 지원
  • rules 0.3
    • DisableOnAndroidDebug rule
  • runner 0.3
    • JUnit v4.10에서 JUnit v4.12로 업그레이드
    • Hamcrest v1.3을 사용하기 위해 이전

버그 수정

  • DrawerActions에서 ParentListener가 누출되는 문제를 수정했습니다.
  • 가정 실패가 이제 실패 테스트가 아닌 무시 테스트로 처리됩니다.
  • MonitoringInstrumentation에서 ExecutorService를 통해 활동 인스턴스가 유출되는 문제를 수정했습니다.
  • 중지된 상태로 멈춰 있는 고아 활동을 수정했습니다.
  • 스크롤 이벤트가 생성되지 않을 경우 true를 반환하도록 Until.scrollFinished()를 업데이트했습니다. UiObject2#setText()에서 잠재적 NPE로부터 보호합니다.

Espresso 2.1, Test Runner/Rules 0.2 및 UIAutomator 2.1.0(2015-04-21)

브레이킹 체인지

  • 테스트 실행기 아티팩트를 둘로 분할하고 이름을 com.android.support.test:testing-support-lib:0.1에서 com.android.support.test:runner:0.2com.android.support.test:rules:0.2로 변경했습니다.

새로운 기능

  • espresso-intents: 테스트 작성자가 발신 인텐트를 확인하여 제거하도록 허용하여 밀폐식 상호작용 테스트를 지원하는 Mockito와 유사한 API
    • IntentsTestRule: ActivityTestRule을 확장하고 기능적 UI 테스트에서 Espresso-Intents를 초기화한 후 릴리스했습니다.
  • espresso-core
    • ViewActions: 작업을 실행하기 전에 글로벌 어설션을 실행하는 기능을 추가했습니다. 이 기능은 기존 Espresso 테스트 도구 모음이 실행되는 동안 Espresso 위에 빌드되어 보기 계층의 상태를 검증하는 다른 프레임워크에 유용합니다.
    • ViewMatchers.withContentDescription() resId 오버로드
  • rules
    • ActivityTestRule: 이 규칙은 단일 활동의 기능 테스트를 제공합니다.
    • UiThreadRuleUiThreadTest 주석: 이 규칙은 애플리케이션의 기본 스레드 또는 UI 스레드에서 UiThreadTest로 주석 처리된 테스트 메서드를 실행하도록 허용합니다.
    • ServiceTestRule: 이 규칙은 서비스를 기능적으로 테스트합니다.
  • runner
    • ApplicationLifecycleCallback: 애플리케이션 수명 주기 이벤트 모니터링을 위한 콜백
    • 이제 Android manifest 파일에서 <meta-data> 태그를 사용하여 모든 실행기 인수를 지정할 수도 있습니다.
  • UIAutomator
    • UiDevice.dumpWindowHierarchy()가 이제 File 또는 OutputStream을 수락할 수 있습니다.

버그 수정

  • espresso
    • Hamcrest가 다음 커서를 진행할 수 있도록 열이 없는 경우 커서 매처는 이제 false를 반환합니다.
    • PreferenceMatchers withTitle을 포함하는 NullPointerException이 더 이상 발생하지 않습니다.
    • 유휴 리소스를 등록 취소해도 더 이상 Espresso에서 유휴 리소스가 사용 중이라고 간주하지 않습니다.
    • Espresso Contrib에서 사용되는 지원 주석 버전을 업데이트했습니다.
  • runner
    • AndroidJUnit4는 이제 실패한 가정이 있는 테스트를 건너뜁니다.
  • UIAutomator
    • StaleObjectException 방지를 위해 감시자를 실행합니다.

기타 중요 변경사항

  • 라틴어 이외 문자열로 텍스트를 입력할 수 없을 때 향상된 오류 메시지를 추가했습니다.

UIAutomator 2.0(2015-03-12)

UI Automator가 이제 Android 계측에 기반하므로 ./gradlew connectedCheck 명령어를 사용하여 테스트를 빌드하고 실행할 수 있습니다.

Espresso Version 2.0, Test Runner 0.1(출시일: 2014-12-19)

브레이킹 체인지

  • Espresso가 android.support.test.espresso에서 android.support.test.espresso라는 새 네임스페이스로 이동했습니다.
  • Espresso 아티팩트의 이름이 바뀌었습니다.
    • espresso-1.1.jar는 이제 espresso-core-release-2.0.jar입니다.
    • IdlingResource 인터페이스가 별도의 라이브러리로 이동되었습니다. espresso-idling-resource-release-2.0.jar
    • CountingIdlingResource가 이제 항상 espresso-contrib-release-2.0.jar에 있어야 합니다.
  • Guava 의존성 재구성을 지원하고 DEX 충돌(개발 문제의 주요 원인)을 방지하기 위해 선택적 (Guava 의존성)을 공개 API에서 삭제했습니다. 영향받는 메서드는 다음과 같습니다.
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

새로운 기능

  • 작업
    • ViewActions
      • replaceText()
      • openLink()
      • 위아래로 스와이프
    • espresso-contrib
      • RecyclerViewActions: RecyclerViews와의 상호작용을 처리합니다.
      • PickerActions: DateTime 선택도구와의 상호작용을 처리합니다.
  • 매처
    • RootMatchers
      • isPlatformPopup()
    • ViewMatchers
      • isJavascriptEnabled()
      • withSpinnerText()
      • withHint()
      • isSelected()
      • hasLinks()
    • LayoutMatchers: i18n 관련 레이아웃 테스트용 매처
    • CursorMatchers: Cursor 객체를 위한 매처 모음
  • 어설션
    • PositionAssertions(isLeftOf()isAbove() 포함): 화면에서 요소의 상대적 위치 확인을 위한 ViewAssertions 모음
    • LayoutAssertions: i18n 관련 레이아웃 테스트를 위한 어설션
  • 테스트 앱: 다양한 새 샘플 활동/테스트
  • 기타
    • Espresso.unregisterIdlingResources()Espresso.getIdlingResources(): IdlingResources 작업 유연성 강화
    • ViewInteraction.withFailureHandler(): onView()에서 실패 핸들러를 재정의할 수 있습니다.
    • CursorAdapters에 의해 지원되는 AdapterViewsonData() 지원

버그 수정

  • ViewMatchers.isDisplayed()는 전체 화면을 차지하는 보기와 일치하지만 더 이상 90% 이하로 표시되지 않습니다.
  • DrawerActions.openDrawer()에 스와이프 작업 호출을 실행해도 더 이상 IdlingResourceTimeoutException이 발생하지 않습니다.

기타 중요 변경사항

  • 빌드 도구가 Maven에서 Gradle로 전환되었습니다.
  • DEX 충돌을 방지하기 위해 Espresso 종속 항목(Guava, Dagger, Hamcrest)을 이동했습니다.
  • 유휴 리소스를 등록 및 등록 취소할 때 성공 또는 실패를 반환하도록 변경했습니다.
  • Lollipop 지원: 버전 관련 변경사항을 처리하기 위해 message.recycle()을 인터페이스 뒤에 배치합니다.
  • 타겟 SDK 레벨을 21로 전환 – 대부분 테스트 앱에 영향을 미칩니다.

버전 1.1 (출시일: 2014-01-08)

Espresso

  • 새로운 swipeLeftswipeRight ViewActions
  • 멀티 윈도우 지원: Espresso에서 작업을 실행할 타겟 창을 선택할 수 있는 고급 기능
  • TypeTextAction 개선: 미리 초점이 맞춰진 보기에 텍스트를 입력하여 텍스트를 쉽게 추가할 수 있습니다.
  • 다양한 버그 수정

Espresso Contrib 라이브러리

  • 이 새 라이브러리에는 Espresso를 보완하지만 핵심 라이브러리에 없는 기능이 포함되어 있습니다.
  • DrawerLayout에서 작업하기 위한 새 DrawerActions: Android 지원 라이브러리에 종속되므로 핵심 Espresso 라이브러리 외부에 유지합니다.

샘플 테스트

  • 테스트 앱과 동일한 패키지에 위치하도록 이러한 테스트를 재배치했습니다.
  • 중복 guava deps를 삭제하도록 Maven POM을 수정했습니다. 따라서 이제 mvn install이 작동해야 합니다.