Bản lưu trữ ghi chú phát hành Test

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/12/2018)

Đây là bản phát hành ổn định của AndroidX Test 1.1.0

  • Core
    • Làm cho ActivityScenario hỗ trợ các hoạt động bắt đầu một hoạt động mới.

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

  • Core
    • Cấu phần phần mềm tiện ích kotlin core-ktx mới! Bao gồm một ActivityScenario.launchActivity API thân thiện với kotlin
    • ActivityScenario API mới để khởi chạy các đối tượng có ý định tuỳ chỉnh
    • ActivityScenario API mới để nhận kết quả Activity (Hoạt động)
    • Cho phép ActivityScenario có thể đóng.
  • Espresso
    • Sửa đổi withResourceNameMatcher và HumanReadables để tương thích với API 28.
    • Cập nhật phần mô tả của ReplaceTextAction để thêm stringToBeSet
    • Hỗ trợ Espresso trong chế độ lặp lại bị tạm dừng Robolectric.
  • JUnit
    • ActivityScenarioRule API mới để tự động chạy và đóng một Hoạt động trong khi thiết lập và đóng kiểm thử.
    • Cấu phần phần mềm tiện ích kotlin junit-ktx mới! Bao gồm một ActivityScenarioRule API thân thiện với kotlin
  • Runner
    • Tạo -e package và -e testFile nhất quán với hành vi nhận gói.
  • Truth
    • Thêm các API bool, parcelable, và 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/10/2018)

  • Tất cả
    • Đặt minSdkVersion thành 14 và targetSdkVersion thành 28
  • Espresso
    • Khắc phục vấn đề withContentDescription kết hợp với các kiểu không phải chuỗi
    • Thêm hỗ trợ cho việc sử dụng Espresso trên Robolectric
    • Vấn đề 72798625: Espresso ViewMatchers.withText không hoạt động khi textAllCaps được bật
    • Thêm hỗ trợ chèn một chuỗi sự kiện chuyển động
  • Ý định
    • Thêm beta API để truy xuất danh sách ý định (intent). Dành để sử dụng cùng với các nhận định sự thật (truth)
  • Runner
    • Hỗ trợ ứng dụng tức thì
    • Ngừng sử dụng androidx.test.runner.AndroidJUnit4 và thay thế bằng androidx.test.ext.junit.runners.AndroidJUnit4
  • Giám sát
    • Ngừng sử dụng androidx.test.InstrumentationRegistry và thay thế bằng androidx.test.platform.app.InstrumentationRegistry và androidx.test.core.app.ApplicationProvider
  • AndroidTestOrchestrator
    • Chỉ cho phép xử lý độ bao phủ của trình điều phối nếu cả hai đối số "coverage" và "coverageFilePath" được truyền.
    • Chỉ đợi trình gỡ lỗi khi việc gỡ lỗi được thiết lập nhưng không dùng để liệt kê các trường hợp kiểm thử ATO. Thêm một cờ orchestratorDebug mới để tự gỡ lỗi trình điều phối
  • Core
    • Cấu phần phần mềm mới! Bao gồm các API mới hỗ trợ các kiểm thử cục bộ và kiểm thử trên thiết bị cho:
      • Truy xuất ngữ cảnh: ApplicationProvider
      • Kiểm soát vòng đời hoạt động: ActivityScenario(beta)
      • Trình tạo cho MotionEvent, PackageInfo
      • Lớp tiện ích Parceables
  • Truth
    • Cấu phần phần mềm mới! Bao gồm các chủ thể truth tuỳ chỉnh cho Notification, Intent, Bundle, Parcelable và MotionEvent
  • JUnit
    • Cấu phần phần mềm mới! Bao gồm lớp runner JUnit androidx.test.ext.junit.runners.AndroidJUnit4 hỗ trợ kiểm thử cục bộ và kiểm thử trên thiết bị.

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/4/2018)

  • Espresso
    • Thay đổi API có thể gây lỗi:
      • Chúng tôi nhận thấy trong Vấn đề 64062890 chúng tôi sử dụng Guava tuỳ chọn trong API công khai. Đây là hành vi giám sát rất tệ của chúng tôi. Do đó gây ra một thay đổi API công khai có thể gây lỗi trong bản phát hành này. Chúng tôi đã giới thiệu một trình bao xấu xí xung quanh lớp Tuỳ chọn Guava, có tên là EspressoOptional nằm trong không gian tên "android.support.test.espresso.util". Nhà phát triển đang sử dụng Guava Optional API bị rò rỉ này cần thay đổi dữ liệu đầu vào và tham chiếu để sử dụng EspressoOptional khi cập nhật lên phiên bản mới này. Chúng tôi xin lỗi cho sự bất tiện này.
    • API onView() và onData() nay được đánh dấu là @CheckReturnValue để ngăn chặn lỗi
    • Khắc phục sao cho tệp espresso-core POM không kéo vào phần phụ thuộc "rules" ("quy tắc"). Thay vào đó, hãy dùng espresso-intents POM để kéo. Đây là một thay đổi NoOp dành cho các nhà phát triển vì các espresso-intents không thể được sử dụng nếu không có espresso-core.
    • Vấn đề 65486414: Espresso thiếu phần phụ thuộc guava
    • Vấn đề 65576174: Espresso IdlingResourceRegistry.sync khiến lần kiểm thử thứ hai không thành công
    • Vấn đề 65568629: Espresso.onIdle không sử dụng IdlingRegistry
    • Vấn đề 69333598: espresso 3.0.1 không tương thích với play-services-auth:11.6.0 trong mô-đun thư viện Android.
    • Vấn đề 64062890: Loại tuỳ chọn nội bộ được thể hiện bởi giao diện của AdapterViewProtocol
    • Vấn đề 64091847: Espresso 3.0.0 KHÔNG nên phụ thuộc vào runner kiểm thử
    • Vấn đề 73722050: espresso-contrib 3.0.2-alpha1 đóng gói các lớp android.arch.{lifecycle/core}
  • Espresso-remote
    • Đây là cấu phần phần mềm hoàn toàn mới. Chúng tôi đã tách biệt mọi chức năng đa quy trình của Espresso bên ngoài cấu phần phần mềm espresso-core. Việc này giúp giảm đáng kể kích thước tổng thể cũng như số lượng phương thức của espresso-core
  • Runner
    • Rút ngắn truy vết ngăn xếp nếu việc này quá lớn đối với một giao dịch liên kết. Vì AJUR cần báo cáo lỗi cho SA thông qua một IPC liên kết, nên chúng tôi cần đảm bảo không vượt quá giới hạn giao dịch Binder – tương đương với 1MB cho mỗi quy trình.
    • Vấn đề 65828576:TestRequestBuilder gặp sự cố khi chạy kiểm thử trong cùng lớp với @Ignore
    • Vấn đề 37057596: Chúng tôi không xử lý các lỗi trong @BeforeClass
  • Quy tắc
    • Đảm bảo phát hành tệp tham chiếu đến hoạt động đang được kiểm thử sau các thay đổi của vòng đời. Trong thời gian kiểm thử, giờ đây, bạn có thể thao tác trực tiếp Hoạt động bằng cách sử dụng tệp đối chiếu thu được từ #getActivity(). Nếu Hoạt động đã kết thúc và được chạy lại, thì tệp đối chiếu mà #getActivity() trả về sẽ luôn trỏ đến phiên bản hiện tại của Hoạt động.
    • Vấn đề 64389280: GrantPermissionRules không cung cấp WRITE_EXTERNAL_STORAGE
    • Vấn đề 37065965: ActivityTestRule rò rỉ hoạt động sau khi thay đổi hướng
    • Vấn đề 75254050: ActivityTestRule không cập nhật phiên bản của Hoạt động trong các thay đổi cấu hình
    • Vấn đề 64464625: Không thể thực hiện công việc của giao diện người dùng trong phương thức finish() của Hoạt động
  • AndroidTestOrchestrator
    • Truyền cờ -e coverage true -e coverageFilePath /sdcard/foo/ để tạo các tệp xác định độ phủ với vị trí đã cho (Ứng dụng phải có quyền ghi vào vị trí đã cho). Quy ước đặt tên tệp xác định độ phủ giống như com.foo.Class#method1.ec này. Lưu ý rằng tính năng này chỉ được hỗ trợ khi chạy ở chế độ cô lập. Ngoài ra, bạn không thể sử dụng cùng với cờ coverageFile của AndroidJUnitRunner. Vì các tệp xác định độ phủ được tạo sẽ ghi đè lên nhau.
    • Truyền cờ -e clearPackageData nếu bạn muốn trình điều phối (orchestrator) chạy lệnh pm clear context.getPackageName()pm clear targetContext.getPackageName() ở giữa các lệnh gọi thử. Lưu ý: ngữ cảnh trong câu lệnh xoá là Ứng dụng trong ngữ cảnh kiểm thử.
    • Khắc phục – Khi chạy một kiểm thử rỗng, hay còn gọi là không @Test trong mục tiêu, kết quả kiểm thử sẽ khác với chế độ cũ.
    • Vấn đề 72758547: Trình điều phối (Orchestrator) kiểm thử khiến cho Dữ liệu về độ bao phủ Jacoco không được hoàn thiện, chỉ chứa dữ liệu ở lần chạy kiểm thử gần nhất.
    • Vấn đề 67916042: Android Test Orchestrator : Việc triển khai bị dừng khi Quá trình gặp sự cố do OutOfMemory
    • Vấn đề 77752735: Trình điều phối gặp sự cố do TransactionTooLargeException
    • Vấn đề 77549481: Trình điều phối kiểm thử nên chạy "pm clear" sau mỗi lần kiểm thử

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 hiện có một phản hồi có thể gọi, cho phép thực thi các kiểm thử sau khi nhận được ý định kích hoạt nhưng trước khi trả về một đối tượng Instrumentation.ActivityResult.
  • Runner

    • Phân tách cấu phần phần mềm giám sát maven com.android.support.test:monitor:<version>, dành cho người dùng cần MonitoringInstrumentation không kèm chạy kiểm thử và các tính năng của JUnit.

      Nếu bạn sử dụng com.android.support.test:runner:<version>, mọi tính năng sẽ hoạt động như dự kiến vì Gradle sẽ tự động lấy mô-đun monitor làm một phần phụ thuộc của mô-đun runner.

    • Thêm cờ newRunListenerOrderMode. Khi true, trình lắng nghe người dùng xác định sẽ chạy trước trình lắng nghe mặc định. (Chúng tôi kỳ vọng hành vi này sẽ trở thành mặc định.)

    • Vấn đề 65828576: TestRequestBuilder gặp sự cố khi chạy các kiểm thử trong một lớp được chú thích bằng @Ignore (không gồm chạy kiểm thử hoặc các tính năng của JUnit).

  • AndroidTestOrchestrator

    • Nay xử lý các kiểm thử rỗng theo cách tương tự như AndroidJUnitRunner.
    • Trình điều phối nay có thể xử lý dữ liệu đầu ra tiêu chuẩn rất lớn trên AndroidJUnitRunner.

Espresso 3.0.1, Runner 1.0.1, Rules 1.0.1, AndroidTestOrchestrator 1.0.1 (28/8/2017)

  • Espresso

    • Thêm tuỳ chọn IdlingPolicy để ngăn chặn onTimeout() khi trình gỡ lỗi bước được đính kèm với máy ảo.
    • Các vấn đề 64024656, 6424758664525881: Không báo cáo lỗi khi tải lớp không thành công trừ phi người dùng tải các lớp cụ thể bằng cách bao gồm đối số runner lớp -e.
    • Vấn đề 64877246: Thêm các lớp bị thiếu vào tệp JAR nguồn.
  • Runner

    • Đơn giản hoá logic ShardingFilter.
    • Vấn đề 65025743: Bộ lọc @RequiresDevice hiện hỗ trợ trình mô phỏng FTL.
  • AndroidTestOrchestrator

    • Không sao chép các lỗi báo cáo. Khi một quá trình kiểm thử gặp sự cố sau khi không thực hiện được, thì chỉ có một lỗi được báo cáo cho kiểm thử đó.
    • Sửa Javadoc cho Trình điều phối
    • Giờ đây, các kiểm thử được xem là bị bỏ qua nếu quá trình từ xa gặp sự cố.
    • Nay xử lý các trường hợp kiểm thử bị bỏ qua.
    • Nay loại trừ các trường hợp kiểm thử bị bỏ qua từ chân trang để khớp với các kết quả cũ.
    • Khắc phục các vấn đề về quyền khi bắt đầu chạy. Báo cáo kiểm thử hiện được ghi vào thẻ SD trên Android 7.0 (API cấp 24) trở lên.

Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (25/7/2017, Thông báo)

Thay đổi có thể gây lỗi

  • Tất cả cấu phần phần mềm
    • Giảm mức hỗ trợ dành cho API cấp 15 trở xuống – Tuy nhiên, SDK tối thiểu vẫn trỏ đến API cấp 9 để người dùng có thời gian nâng cấp
  • Espresso
    • Lớp android.support.test.espresso.contrib.CountingIdlingResource không dùng nữa đã bị xoá và chuyển sang android.support.test.espresso.idling.CountingIdlingResource
    • Guava hiện được chuyển sang một không gian tên "nội bộ" khác. Nếu bạn vô tình sử dụng API Guava thông qua không gian tên Espresso, bạn có thể sẽ gặp một vài gián đoạn
      • Xoá tất cả tệp tham chiếu đến Guava được tô bóng (.core.deps.guava.)
      • Nâng cấp Thư viện hỗ trợ lên phiên bản 25.4.0 trở lên

Lỗi đã biết

  • AndroidTestOrchestrator

Tính năng mới

  • Runner
    • InterceptingActivityFactory SingleActivityFactory – Cung cấp chức năng để kiểm thử một hoạt động tách biệt với thế giới bên ngoài bằng các phương thức ghi đè như startService()sendBroadcast()
    • Thêm hỗ trợ cho việc sử dụng JUnitParams với AndroidJUnitRunner
    • Bắt đầu xử lý @UiThreadTest ở cấp chạy kiểm thử cốt lõi và ngừng dùng @UiThreadTestRule – Điều này cho phép việc sử dụng chú thích @UiThreadTest trực tiếp trên các phương thức được chú thích bằng @Before @After
    • Chú thích @SdkSupress hiện hỗ trợ giá trị của maxSdkVersion (Vấn đề 37067792)
    • -e classLoader – Cung cấp khả năng truyền trình tải lớp bằng cách sử dụng đối số runner
    • -e filter – Thêm hỗ trợ để chỉ định các bộ lọc JUnit tuỳ chỉnh bằng cách sử dụng đối số runner.
    • -e runnerBuilder– Cho phép các nhà phát triển triển khai RunnerBuilder của riêng mình để có thể quyết định khả năng và cách thức chạy trong trong một lớp cụ thể.
  • Quy tắc
  • AndroidTestOrchestrator
    • Android Test Orchestrator cung cấp một cách mới để thu thập và chạy kiểm thử, đồng thời chú trọng đến độ chính xác và tính tách biệt. Trình điều phối (Orchestrator) là một quá trình đo lường độc lập, tạo ra một quy runner đo lường cho mỗi lần kiểm thử và thu thập kết quả.
      • Các sự cố xảy ra với ứng dụng sẽ làm giảm khả năng đo lường runner nhưng không ảnh hưởng tới trình điều phối, cho phép bộ kiểm thử của bạn tiếp tục
      • Yêu cầu cài đặt trình điều phối APK – 'com.android.support.test:orchestrator:1.0.0'
      • Phiên bản 1.0 chỉ có giao diện dòng lệnh; việc tích hợp với Android Studio và Firebase Test Labs đã được lên kế hoạch

Sửa lỗi

  • Espresso
    • Cải thiện tính năng đồng bộ hoá thành phần hiển thị gốc để giảm đáng kể tình trạng mất dữ liệu
    • Khắc phục tình trạng sai hỏng của IdlingResourceRegistry
    • Đồng bộ hoá tốt hơn so với đối tượng IdlingResource
    • Vấn đề 37132680: Espresso không đợi quá trình tạo hộp thoại hoàn tất trước khi thực hiện hành động tiếp theo
    • Vấn đề 37103280: Espresso nên gửi quy tắc người dùng ProGuard để họ không phải thêm các quy tắc đó
    • Vấn đề 37094726: Các ý định Espresso có chứa nhãn ứng dụng không cần thiết
    • Vấn đề 37093953: Espresso: Không có tuỳ chọn kiểm tra lỗi cho văn bản có lỗi rỗng/trống
    • Vấn đề 37071776: espresso-core nhúng tệp .pom của Guava
    • Vấn đề 37062612: NPE trong release()
    • Vấn đề 37063389: Việc Guava và espresso-web là các phần phụ thuộc androidTest sẽ không biên dịch
    • Vấn đề 37070533: Thêm hỗ trợ cho NavigationView trong Thư viện hỗ trợ thiết kế Android
  • Runner
    • Khắc phục khả năng sử dụng @UiThreadTest khi kết hợp với @Test(timeout = 123)
    • Khắc phục đối số runner -e notClass
    • Khắc phục -e log để hỗ trợ các bộ kiểm thử JUnit3 và JUnit4, cũng như các runner Parameterized Enclosed
    • Vấn đề 37663530: Chờ tất cả hoạt động kết thúc trước và sau mỗi phương thức kiểm tra
    • Vấn đề 37132680: Espresso không đợi quá trình tạo hộp thoại hoàn tất trước khi thực hiện hành động tiếp theo
    • Vấn đề 37123213: @RequiresDevice bị bỏ qua trên x86_64 ABI
    • Vấn đề 37101485: Một số đối số do tệp kê khai cung cấp cho AndroidJUnitRunner – chẳng hạn như kích thước kiểm thử, chú thích và gỡ lỗi – bị bỏ qua
    • Vấn đề 37082857: Không thực hiện được kiểm thử bán song song Espresso trên các đối tượng tĩnh
    • Vấn đề 37063396: Ngữ cảnh không được khởi tạo bằng ProviderTestCase2 (gây ra NullPointerException)

Thay đổi đáng chú ý khác

  • Tệp nhị phân nay được phát hành qua Google Maven
  • Giảm kích thước của các tệp espresso-coreespresso-web – các phần phụ thuộc được nhúng hiện đã áp dụng ProGuard
  • Tất cả tệp .aar hiện đều bao gồm quy tắc ProGuard
  • Thêm các tệp proguard_library.cfg vào cấu phần phần mềm đã phát hành
  • Giao diện Tapper có phiên bản sendTap() mới để triển khai

Đóng góp bên ngoài

Espresso 2.2.2, Runner/Rules 0.5 (22/2/2016, bản phát hành không thông báo)

Tính năng mới

  • espresso
    • Vấn đề 194253: Thêm hỗ trợ cho NavigationView trong thư viện thiết kế hỗ trợ Android
    • Thêm các lượt kiểm tra cho ảnh động và hiệu ứng chuyển đổi đã kích hoạt
    • ViewMatcher API mới: withResourceName()

Sửa lỗi

  • espresso
    • Vấn đề 195331: espresso-core nhúng các tệp pom của guava
    • Di chuyển bộ đếm tài nguyên không hoạt động ra khỏi espresso-contrib
  • quy tắc
    • Vấn đề 187249: NPE ở Intents.release()
  • runner
    • Vấn đề 196066: Đối số -e log true trong AndroidJUnitRunner không vượt qua kiểm thử thực tế
    • Chờ trình gỡ lỗi trong onCreate() của runner
    • Di chuyển tất cả chú thích kiểm thử được hỗ trợ ra khỏi nền tảng và đưa vào ATSL
    • Xoá tệp kết xuất dấu vết ngăn xếp về việc không có JSBridge
    • Khắc phục AndroidAnnotatedBuilder

Thay đổi đáng chú ý khác

  • ActivityTestRule, UiThreadTestRule, IntentsTestRuleServiceTestRule đã kết thúc giai đoạn kiểm thử
  • Thêm tệp cài đặt kiểu mã để định dạng mã thống nhất

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

Tính năng mới

  • quy tắc
    • Thêm hàm khởi tạo IntentsTestRule mới để tương thích hoàn toàn với ActivityTestRule
  • runner
    • Bổ sung cài đặt các trường hợp multidex đặc biệt cho API từ cấp 15 trở xuống.
    • Bổ sung các bộ lọc loại trừ cho lớp và gói
      • Chạy tất cả kiểm thử ngoại trừ những kiểm thử trong một lớp cụ thể: adb shell am instrument -w -e notClass com.android.foo.FooTest
      • Chạy tất cả ngoại trừ một kiểm thử duy nhất: adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo
      • Chạy tất cả các kiểm thử, ngoại trừ một gói cụ thể: adb shell am instrument -w -e notPackage com.android.foo.bar

Đóng góp bên ngoài

  • espresso
    • 157911: Thêm trình so khớp thành phần hiển thị cho kiểu hoạt động đầu vào trên đối tượng EditText
    • 157912: Thêm trình so khớp thành phần hiển thị để so khớp văn bản lỗi trên đối tượng EditText
    • 150674: Thêm hỗ trợ DrawerActions cho các ngăn có trọng lực tuỳ ý
    • 150744: DrawerActions không còn rò rỉ parentListener
    • 153303: Trọng lực được chỉ định trên dấu kiểm "ngăn đang mở hay đóng"
    • 157910: Thêm DrawerLayout nhà máy hành động đóng và mở

Sửa lỗi

  • espresso
    • ViewActions.closeSoftKeyboard() nay đảm bảo rằng bàn phím mềm đã biến mất hoàn toàn
    • Khắc phục vấn đề đồng bộ hoá với phương thức Espresso.pressBack() của Espresso tại API cấp 21 trở lên
    • Khắc phục đồng bộ hoá cho ảnh động đóng bàn phím trên API cấp độ 23
  • quy tắc
    • Khắc phục ServiceTestRule ở API cấp 23, startService() phải luôn được gọi bằng một Intent rõ ràng
  • runner
    • Khắc phục tuỳ chọn hỗ trợ JaCoCo gradle bị hỏng
    • Khắc phục tuỳ chọn hỗ trợ phân đoạn kiểm thử bị hỏng
    • Khắc phục trạng thái không nhất quán trong runner kiểm thử sau khi hết thời gian chờ kiểm thử loại JUnit3.

Thay đổi đáng chú ý khác

  • Sửa lỗi Javadox và cải thiện thông báo lỗi
  • Bỏ qua các phương thức suite() và không bỏ qua các lỗi khởi đầu khi sử dụng bộ lọc phương thức

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

Tính năng mới

  • espresso-web 2.2
    • Hỗ trợ WebView mới
  • espresso-core 2.2
    • Di chuyển để sử dụng dấu chữ thập v2
    • Di chuyển để sử dụng hamcrest v1.3
  • espresso-contrib 2.2
    • Kiểm tra khả năng truy cập
    • Hỗ trợ trọng lực DrawerActions
  • các quy tắc 0.3
    • luật DisableOnAndroidDebug
  • runner 0.3
    • Nâng cấp từ JUnit v4.10 lên JUnit v4.12
    • Di chuyển để sử dụng Hamcrest v1.3

Sửa lỗi

  • Khắc phục DrawerActions rò rỉ ParentListener
  • Lỗi giả định hiện được xem là một kiểm thử bỏ qua thay vì một kiểm thử không thành công.
  • Khắc phục phiên bản hoạt động bị rò rỉ MonitoringInstrumentation thông qua ExecutorService
  • Khắc phục các hoạt động bị mất nguồn gốc bị mắc kẹt trong giai đoạn bị dừng
  • Cập nhật Until.scrollFinished() để trả về kết quả true nếu không có sự kiện cuộn nào được tạo. Bảo vệ khỏi NPE tiềm ẩn ở UiObject2#setText().

Espresso 2.1, Test Runner/Rules 0.2 and UIAutomator 2.1.0 (21/4/2015)

Thay đổi có thể gây lỗi

  • Cấu phần phần mềm chạy kiểm thử được chia đôi và tên được thay đổi từ com.android.support.test:testing-support-lib:0.1 thành com.android.support.test:runner:0.2com.android.support.test:rules:0.2.

Tính năng mới

  • espresso-intents: Một API dạng Mockito khởi chạy kiểm thử liên hoạt động khép kín bằng cách cho phép người kiểm thử xác minh và giả lập các ý định gửi đi
    • IntentsTestRule: mở rộng ActivityTestRule, đã khởi chạy và phát hành Espresso-Intents trong các kiểm thử chức năng trên giao diện người dùng
  • espresso-core
    • ViewActions: Bổ sung khả năng chạy xác nhận toàn cầu trước khi chạy các hành động. Điều này sẽ hữu ích cho các khung xây trên Espresso để xác thực trạng thái của hệ phân cấp thành phần hiển thị trong khi bộ kiểm thử Espresso hiện có được thực thi
    • Quá tải ViewMatchers.withContentDescription() resId
  • quy tắc
    • ActivityTestRule: Quy tắc này cung cấp kiểm thử chức năng cho một hoạt động đơn lẻ
    • Các chú thích UiThreadRuleUiThreadTest: Quy tắc này cho phép phương thức kiểm thử được chú thích bằng UiThreadTest được thực thi trên chuỗi chính của ứng dụng (hoặc chuỗi giao diện người dùng)
    • ServiceTestRule: Quy tắc này cung cấp kiểm thử chức năng cho một dịch vụ
  • runner
    • ApplicationLifecycleCallback: Lệnh gọi lại để giám sát các sự kiện trong chu trình hoạt động của ứng dụng
    • Tất cả đối số runner nay có thể được chỉ định trong tệp kê khai Android sử dụng một thẻ <meta-data>
  • UIAutomator
    • UiDevice.dumpWindowHierarchy() nay có thể chấp nhận một File hoặc một OutputStream

Sửa lỗi

  • espresso
    • Trình so khớp con trỏ sẽ trả về false nếu không có cột nào được tìm thấy để Hamcrest có thể di chuyển sang con trỏ tiếp theo
    • NullPointerException cùng với PreferenceMatchers withTitle không còn xảy ra
    • Việc huỷ đăng ký tài nguyên không hoạt động không còn khiến Espresso cho rằng chúng ta có tài nguyên không hoạt động.
    • Cập nhật phiên bản Chú thích hỗ trợ (Support Annotations) do Espresso Contrib sử dụng
  • runner
    • AndroidJUnit4 nay bỏ qua các kiểm thử với giả định không thành công
  • UIAutomator
    • Chạy trình quan sát để ngăn StaleObjectException

Thay đổi đáng chú ý khác

  • Thêm thông báo lỗi hiệu quả hơn khi chúng ta không thể typeText bằng một chuỗi không phải chữ La-tinh

UIAutomator 2.0 (2015-03-12)

UI Automator hiện được dựa trên Công cụ Android và bạn có thể tạo và chạy kiểm thử bằng lệnh ./gradlew connectedCheck.

Espresso Version 2.0, Test Runner 0.1 (Ngày phát hành: 19/12/2014)

Thay đổi có thể gây lỗi

  • Espresso Chuyển sang một không gian tên mới, từ android.support.test.espresso sang android.support.test.espresso
  • Các cấu phần phần mềm Espresso đã được đổi tên
    • espresso-1.1.jar giờ là espresso-core-release-2.0.jar
    • Di chuyển giao diện IdlingResource vào một thư viện riêng: espresso-idling-resource-release-2.0.jar
    • CountingIdlingResource nay nằm trong espresso-contrib-release-2.0.jar (đáng lẽ phải luôn như vậy)
  • Tuỳ chọn (phần phụ thuộc guava) đã được xoá khỏi API công khai để hỗ trợ việc đóng gói lại phần phụ thuộc guava và tránh va chạm DEX (nguồn chính gây ra nỗi đau lập trình). Các phương thức bị ảnh hưởng bao gồm:
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

Tính năng mới

  • Hành động
    • ViewActions
      • replaceText()
      • openLink()
      • Vuốt lên và xuống
    • espresso-contrib
      • RecyclerViewActions: Xử lý tương tác với RecyclerViews
      • PickerActions: Xử lý tương tác bằng bộ chọn DateTime
  • Trình so khớp
    • RootMatchers
      • isPlatformPopup()
    • ViewMatchers
      • isJavascriptEnabled()
      • withSpinnerText()
      • withHint()
      • isSelected()
      • hasLinks()
    • LayoutMatchers: Trình so khớp cho kiểm thử bố cục liên quan đến i18n
    • CursorMatchers: Một tập hợp các trình so khớp cho các đối tượng Cursor
  • Xác nhận
    • PositionAssertions, bao gồm isLeftOf()isAbove(): Tập hợp của ViewAssertions để kiểm tra vị trí tương đối của các phần tử trên màn hình
    • LayoutAssertions: Xác nhận cho kiểm thử bố cục liên quan đến i18n
  • Ứng dụng kiểm thử: Nhiều hoạt động/kiểm thử mẫu mới
  • Khác
    • Espresso.unregisterIdlingResources()Espresso.getIdlingResources(): Giúp bạn linh hoạt hơn khi làm việc với IdlingResources
    • ViewInteraction.withFailureHandler(): Cho phép ghi đè trình xử lý lỗi từ onView()
    • Hỗ trợ onData() cho AdapterViews được hỗ trợ bởi CursorAdapters

Sửa lỗi

  • ViewMatchers.isDisplayed() khớp với các thành phần hiển thị toàn màn hình, nhưng các thành phần hiển thị đó đã không còn hiển thị dưới 90%
  • Việc thực hiện lệnh gọi hành động vuốt đến DrawerActions.openDrawer() không còn tạo ra kết quả IdlingResourceTimeoutException

Thay đổi đáng chú ý khác

  • Chuyển từ Xây dựng với Maven sang Gradle
  • Di chuyển các phần phụ thuộc Espresso (Guava, Dagger, Hamcrest) để tránh các va chạm DEX
  • Thay đổi để trả về kết quả thành công hoặc thất bại khi đăng ký và huỷ đăng ký tài nguyên không hoạt động.
  • Hỗ trợ Lollipop: Đặt message.recycle() sau một giao diện cho các thay đổi liên quan đến phiên bản
  • Chuyển cấp SDK mục tiêu sang mức 21 – chủ yếu ảnh hưởng đến ứng dụng kiểm thử

Phiên bản 1.1 (Ngày phát hành: 8/1/2014)

Espresso

  • swipeLeftswipeRight ViewActions mới
  • Hỗ trợ đa cửa sổ: Một tính năng nâng cao cho phép lựa chọn cửa sổ mục tiêu để Espresso hoạt động trên đó
  • Các cải tiến cho TypeTextAction: Cho phép nhập văn bản vào thành phần hiển thị tập trung trước, giúp bạn dễ dàng nối văn bản hơn
  • Sửa nhiều lỗi

Thư viện Espresso Contrib

  • Thư viện mới này có các tính năng bổ sung cho Espresso, nhưng không thuộc thư viện chính
  • DrawerActions mới để hoạt động trên DrawerLayout: Có phần phụ thuộc vào Thư viện hỗ trợ Android, do đó nó không được đưa vào thư viện Espresso chính

Kiểm thử mẫu

  • Các kiểm thử này đã được chuyển vào cùng một gói với ứng dụng kiểm thử
  • Các Maven POM đã được khắc phục để xoá bỏ các phần phụ thuộc guava, do đó, mvn install hiện có thể hoạt động