Test

在 Android 中进行测试。

下表列出了 androidx.test 组中的所有工件。

工件 当前稳定版 下一候选版 Beta 版 Alpha 版
annotation - - - 1.0.0-alpha01
core 1.4.0 - - 1.4.1-alpha02
espresso 3.4.0 - - 3.5.0-alpha02
ext.junit 1.1.3 - - 1.1.4-alpha02
ext.truth 1.4.0 - - 1.5.0-alpha02
monitor 1.4.0 - - 1.5.0-alpha02
orchestrator 1.4.0 - - 1.4.1-alpha02
runner 1.4.0 - - 1.4.1-alpha02
rules 1.4.0 - - 1.4.1-alpha02
services 1.4.0 - - 1.4.1-alpha02
此库的最后更新时间:2021 年 9 月 27 日

声明依赖项

如需添加 androidx.test 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

dependencies {
    // To use the androidx.test.core APIs
    androidTestImplementation "androidx.test:core:1.4.0"
    // Kotlin extensions for androidx.test.core
    androidTestImplementation "androidx.test:core-ktx:1.4.0"

    // To use the androidx.test.espresso
    androidTestImplementation "androidx.test:espresso:espresso-core:3.4.0"

    // To use the JUnit Extension APIs
    androidTestImplementation "androidx.test.ext:junit:1.1.3"
    // Kotlin extensions for androidx.test.ext.junit
    androidTestImplementation "androidx.test.ext:junit-ktx:1.1.3"

    // To use the Truth Extension APIs
    androidTestImplementation "androidx.test.ext:truth:1.4.0"

    // To use the androidx.test.runner APIs
    androidTestImplementation "androidx.test.runner:1.4.0"

    // To use android test orchestrator
    androidTestUtil "androidx.test:orchestrator:1.4.0"

}

Kotlin

dependencies {
    // To use the androidx.test.core APIs
    androidTestImplementation("androidx.test:core:1.4.0")
    // Kotlin extensions for androidx.test.core
    androidTestImplementation("androidx.test:core-ktx:1.4.0")

    // To use the androidx.test.espresso
    androidTestImplementation("androidx.test:espresso:espresso-core:3.4.0")

    // To use the JUnit Extension APIs
    androidTestImplementation("androidx.test.ext:junit:1.1.3")
    // Kotlin extensions for androidx.test.ext.junit
    androidTestImplementation("androidx.test.ext:junit-ktx:1.1.3")

    // To use the Truth Extension APIs
    androidTestImplementation("androidx.test.ext:truth:1.4.0")

    // To use the androidx.test.runner APIs
    androidTestImplementation("androidx.test.runner:1.4.0")

    // To use android test orchestrator
    androidTestUtil("androidx.test:orchestrator:1.4.0")
}

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库的改进有自己的见解,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

ß

Annotation 1.0.0

Annotation 1.0.0-alpha01

2021 年 9 月 28 日

发布了 androidx.test:annotation:1.0.0-alpha01

API 变更

  • 新增了 ExperimentalTestApi 和 InternalTestApi 注解

Core 1.4.1

Core Core-ktx 1.4.1-alpha02

2021 年 9 月 28 日

发布了 androidx.test:core:1.4.1-alpha02androidx.test:core-ktx:1.4.1-alpha02

新功能

  • 针对屏幕截图添加了新的实验性 API:
    • View.captureToBitmap 扩展函数
    • Window.captureRegionToBitmap 扩展函数
    • takeScreenshot()
  • 添加了实验性 Bitmap.writeToTestStorage API

依赖项变更

  • 已将依赖项添加到
    • kotlin stdlib 1.5.31
    • androidx.test.services:storage:1.4.1-alpha02
    • com.google.guava:listenablefuture:1.0
    • androidx.concurrent:concurrent-futures:1.1.0
  • 依赖项版本已更新为
    • androidx.lifecycle:lifecycle-common:2.3.1
    • androidx.annotation:annotation:1.2.0

Core Core-ktx 1.4.1-alpha01

2021 年 8 月 23 日

发布了 androidx.test:core:1.4.1-alpha01androidx.test:core-ktx:1.4.1-alpha01

bug 修复

  • 通过在内部 activity 中使用纯白色背景并停用过渡动画,降低了 ActivityScenario 开销

依赖项变更

  • -ktx:显式依赖于 kotlin stdlib 1.4.30

Espresso 3.5.0

Espresso 3.5.0-alpha02

2021 年 9 月 28 日

发布了以下工件:

  • androidx.test.espresso:accessibility:3.5.0-alpha02
  • androidx.test.espresso:core:3.5.0-alpha02
  • androidx.test.espresso:contrib:3.5.0-alpha02
  • androidx.test.espresso:idling-resource:3.5.0-alpha02
  • androidx.test.espresso:intents:3.5.0-alpha02
  • androidx.test.espresso:remote:3.5.0-alpha02
  • androidx.test.espresso:web:3.5.0-alpha02
  • androidx.test.espresso,idling:idling-concurrent:3.5.0-alpha02
  • androidx.test.espresso,idling:idling-net:3.5.0-alpha02

新功能

  • 添加了实验性 ViewInteraction.captureToBitmap 扩展函数

依赖项变更

  • 全部:
    • 已更新为 androidx.annotation:1.2.0
  • core:
    • 已更新为 kotlin stdlib 1.5.31
  • contrib:
    • 已更新为 drawer 1.1.1、recycler view 1.2.1 和 materual 1.4.0

Espresso 3.5.0-alpha01

2021 年 8 月 23 日

发布了以下工件:

  • androidx.test.espresso:accessibility:3.5.0-alpha01
  • androidx.test.espresso:core:3.5.0-alpha01
  • androidx.test.espresso:contrib:3.5.0-alpha01
  • androidx.test.espresso:idling-resource:3.5.0-alpha01
  • androidx.test.espresso:intents:3.5.0-alpha01
  • androidx.test.espresso:remote:3.5.0-alpha01
  • androidx.test.espresso:web:3.5.0-alpha01
  • androidx.test.espresso,idling:idling-concurrent:3.5.0-alpha01
  • androidx.test.espresso,idling:idling-net:3.5.0-alpha01

新功能

  • 将视图层次结构保存到故障文件中

API 变更

  • 添加了 IntentMatcher.hasExtra API

依赖项变更

  • core:依赖于 kotlin stdlib 1.4.30

JUnit Extensions 1.1.4

ext.junit 1.1.4-alpha02

2021 年 9 月 28 日

发布了 androidx.test.ext:junit:1.1.4-alpha02androidx.test.ext:junit-ktx:1.1.4-alpha02

依赖项变更

  • 已更新为
    • kotlin stdlib 1.5.31
    • org.junit:junit:4.13.2

ext.junit 1.1.4-alpha01

2021 年 8 月 23 日

发布了 androidx.test.ext:junit:1.1.4-alpha01androidx.test.ext:junit-ktx:1.1.4-alpha01

依赖项变更

  • -ktx:显式依赖于 kotlin stdlib 1.4.30

Truth Extensions 1.5.0

ext.truth 1.5.0-alpha02

2021 年 9 月 28 日

发布了 androidx.test.ext:truth:1.5.0-alpha02

API 变更

  • 添加了 ParcelableSubject.marshallsEquallyTo()

依赖项变更

  • 已更新为
    • com.google.guava:guava:30.1.1-android
    • com.google.truth:truth:1.1.3

ext.truth 1.5.0-alpha01

2021 年 8 月 23 日

发布了 androidx.test.ext:truth:1.5.0-alpha01

API 变更

  • 添加了 BundleSubject#doubleFloat

Monitor aka Platform 1.5.0

monitor 1.5.0-alpha02

2021 年 9 月 28 日

发布了 androidx.test:monitor:1.5.0-alpha02

API 变更

  • 移除了 HardwareRendererCompat#enableDrawingIfNecessary
  • 从 HardwareRendererCompat 中移除了 ExperimentalTestApi
  • 废弃了 androidx.test.annotation.Beta

monitor 1.5.0-alpha01

2021 年 8 月 23 日

发布了 androidx.test:monitor:1.5.0-alpha01

API 变更

  • 添加了 HardwareRendererCompat
  • 添加了 PlatformTestStorage

Orchestrator 1.4.1

orchestrator 1.4.1-alpha02

2021 年 9 月 28 日

发布了 androidx.test:orchestrator:1.4.1-alpha02

orchestrator 1.4.1-alpha01

2021 年 8 月 23 日

发布了 androidx.test:orchestrator:1.4.1-alpha01

bug 修复

  • 删除了过时的 OrchestrationXmlTestRunListener,这在一定程度上是为了防止在 Android 11+ 上收到错误消息

Runner 1.4.1

runner 1.4.1-alpha02

2021 年 9 月 28 日

发布了 androidx.test:runner:1.4.1-alpha02

API 变更

  • 已将 androidx.test.annotaton.Beta 引用替换为 ExperimentalTestApi

bug 修复

  • 以空操作形式废弃了 Google Analytics(分析)

依赖项变更

  • 已更新为
    • org.junit:junit:4.13.2

runner 1.4.1-alpha01

2021 年 8 月 23 日

发布了 androidx.test:runner:1.4.1-alpha01

bug 修复

  • 增强了在异常情况(应用崩溃等)下处理错误的能力

Rules 1.4.1

rules 1.4.1-alpha02

2021 年 9 月 28 日

发布了 androidx.test:rules:1.4.1-alpha02

API 变更

  • 已将 androidx.test.annotaton.Beta 引用替换为 ExperimentalTestApi

依赖项变更

  • 已更新为
    • org.junit:junit:4.13.2

rules 1.4.1-alpha01

2021 年 8 月 23 日

发布了 androidx.test:rules:1.4.1-alpha01

没有显著变更

Services 1.4.1

services 1.4.1-alpha02

2021 年 9 月 28 日

发布了 androidx.test.services:test-services:1.4.1-alpha02 androidx.test.services:storage:1.4.1-alpha02

services 1.4.1-alpha01

2021 年 8 月 23 日

发布了 androidx.test.services:test-services:1.4.1-alpha01 androidx.test.services:storage:1.4.1-alpha01

** bug 修复 **

  • 通过针对 ToolConnection 使用真实 uid,修复了 Android S Beta4 上的执行问题 [#1042]

版本 1.4.0

版本 1.4.0

2021 年 6 月 30 日

这是 AndroidX Test 1.4.0 + Espresso 3.4.0 的稳定版。它对下列库进行了更新:

  • Core 1.4.0
  • Espresso 3.4.0
  • Intents 3.4.0
  • JUnit 1.1.3
  • Monitor 1.4.0
  • Orchestrator 1.4.0
  • Runner 1.4.0
  • Rules 1.4.0
  • Truth 1.4.0
  • Test Services 1.4.0

自 1.4.0-rc01 以来没有任何变化。以下是自 1.3.0 版以来所做更改的摘要:

新功能

  • 为负面条件添加了 Espresso ViewMatcher API
  • 允许从 Espresso IdlingRegistry 取消注册 Looper
  • 支持通过 java.util.ServiceLoader 指定 junit RunListener
  • 引入了能更好地进行错误消息传递的 Espresso BoundedDiagnosingMatcher 基类 API,并将该 API 应用于各种 Espresso 匹配器
  • 支持在类级别使用 UIThreadTest
  • 向 ext.truth 的 LocationSubject 添加了若干个实用程序方法
  • 添加了 SparseBooleanArraySubject Truth Subject,以对 SparseBooleanArray 做出断言

bug 修复

  • 改进了对测试失败时的大型堆栈轨迹的处理 [#729 和 #269]
    • 移除了测试运行程序框架相关的堆栈帧
    • 截断堆栈轨迹,使其大小不超过 64KB 的上限值,以免因超过 binder 限制而导致发生事务错误
  • 为低于 21 的 Android API 上的 multidex instrumentation apk 添加了对类路径扫描 Test Discovery 的支持。
  • Espresso:改进了不存在 activity 情况下的错误消息传递方式
  • 改进了 Instrumentation#runOnMainSync 异常错误处理方式
  • 完善了 -e timeout_msec 和 AndroidJUnit4 的文档。
  • 将 ActivityOptions 发送到 BootstrapActivity [#685]
  • 通过让 ViewMatchers#assertThat 能够使用 Matcher.describeMismatch,改进了其错误消息传递
  • 修复了使用 Espresso-Remote 时出现的缺少脱糖 ThrowableExtension 错误 [issuetracker.google.com/170228109]
  • 通过添加 androidx.test.espresso.web.bridge 类,修复了 Android API 小于 19 时 Espresso-Web 出现的相关问题
  • 在 InstrumentationActivityInvoker 中取消注册 ActivityResultWaiter(如果尚未对其取消注册)
  • 运行程序:将 TestEventClient 的“not primary instr”日志消息降为警告,因为它是多进程测试中的预期条件
  • Espresso:更新了 HasSiblingMatcher,以便只检查同级(非自身)
  • 修复了 espresso.idling.resource 的工件名称 [#809]
  • 公开了 setMasterPolicyTimeoutWhenDebuggerAttached 功能 [#814]
  • 移除了过于冗长的 ActivityLifecycleMonitorImpl 回调日志记录。

依赖项变更

  • 更新了 espresso.accessibility 和 espresso.contrib 以依赖于与 AndroidX 兼容的 com.google.android.apps.common.testing.accessibility.framework:accessibility-test-framework:3.1。因此,此版本需要具有 java8 源/目标兼容性。 [#492]

已知问题

  • 若要在 API 30 及更高版本中使用 Orchestrator,必须使用 Studio/AGP 4.2 或更高版本

版本 1.4.0-rc01

2021 年 6 月 21 日

这是 AndroidX Test 1.4.0/Espresso 3.4.0 的候选版本。API 稳定。它对下列库进行了更新:

  • Core 1.4.0-rc01
  • Espresso 3.4.0-rc01
  • Intents 3.4.0-rc01
  • JUnit 1.1.3-rc01
  • Monitor 1.4.0-rc01
  • Orchestrator 1.4.0-rc01
  • Runner 1.4.0-rc01
  • Rules 1.4.0-rc01
  • Truth 1.4.0-rc01
  • Test Services 1.4.0-rc01

除了版本号之外,该候选版本等同于 1.4.0-beta02/3.4.0-beta02 版本。

版本 1.4.0-beta02

2021 年 6 月 7 日

这是 AndroidX Test 1.4.0 的一个测试版本。API 应该不会发生变化。 它对下列库进行了更新:

  • Core 1.4.0-beta02
  • Espresso 3.4.0-beta02
  • Intents 3.4.0-beta02
  • JUnit 1.1.3-beta02
  • Monitor 1.4.0-beta02
  • Orchestrator 1.4.0-beta02
  • Runner 1.4.0-beta02
  • Rules 1.4.0-beta02
  • Truth 1.4.0-beta02
  • Test Services 1.4.0-beta02

以下是自 1.4.0-beta01 版以来所做更改的摘要:

bug 修复

  • 切换回经典脱糖流程以解决 Beta 版 1 中存在的向后兼容性问题和核心库脱糖问题 [修复 968]

版本 1.4.0-beta01

2021 年 5 月 17 日

这是 AndroidX Test 1.4.0 的 Beta 版。 API 应该不会发生变化。 它对下列库进行了更新:

  • Core 1.4.0-beta01
  • Espresso 3.4.0-beta01
  • Intents 3.4.0-beta01
  • JUnit 1.1.3-beta01
  • Monitor 1.4.0-beta01
  • Orchestrator 1.4.0-beta01
  • Runner 1.4.0-beta01
  • Rules 1.4.0-beta01
  • Truth 1.4.0-beta01
  • Test Services 1.4.0-beta01

以下是自 1.4.0-alpha06 版以来所做更改的摘要:

全新 API 清理

  • 移除了 InstrumentationProvider
  • 恢复了对 BoundedMatcher 的使用
  • 恢复了 CursorMatcher,以便从 BoundedMatcher 继承

版本 1.4.0-alpha06

2021 年 4 月 29 日

这是 AndroidX Test 1.4.0 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.4.0-alpha06
  • Espresso 3.4.0-alpha06
  • Intents 3.4.0-alpha06
  • JUnit 1.1.3-alpha06
  • Monitor 1.4.0-alpha06
  • Orchestrator 1.4.0-alpha06
  • Runner 1.4.0-alpha06
  • Rules 1.4.0-alpha06
  • Truth 1.4.0-alpha06
  • Test Services 1.4.0-alpha06

以下是自 1.4.0-alpha05 版以来所做更改的摘要:

bug 修复

  • 通过从清单中移除 forceQueryable,支持在低于 29 版的 SDK 上进行编译 [#917]

版本 1.4.0-alpha05

2021 年 3 月 15 日

这是 AndroidX Test 1.4.0 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.4.0-alpha05
  • Espresso 3.4.0-alpha05
  • Intents 3.4.0-alpha05
  • JUnit 1.1.3-alpha05
  • Monitor 1.4.0-alpha05
  • Orchestrator 1.4.0-alpha05
  • Runner 1.4.0-alpha05
  • Rules 1.4.0-alpha05
  • Truth 1.4.0-alpha05
  • Test Services 1.4.0-alpha05

以下是自 1.4.0-alpha04 版以来所做更改的摘要:

API 变更

  • [Truth] 添加了 SparseBooleanArraySubject Truth Subject,以对 SparseBooleanArray 做出断言。

bug 修复

  • 将 QUERY_ALL_PACKAGES 权限添加到了 Android Test Orchestrator 和 Android Test Services APK 中,以便在 Android API R+ 上正常运行。
  • 为低于 21 的 Android API 上的 multidex instrumentation apk 添加了对类路径扫描 Test Discovery 的支持。

版本 1.4.0-alpha04

2021 年 2 月 8 日

这是 AndroidX Test 1.4.0 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.4.0-alpha04
  • Espresso 3.4.0-alpha04
  • Intents 3.4.0-alpha04
  • JUnit 1.1.3-alpha04
  • Monitor 1.4.0-alpha04
  • Orchestrator 1.4.0-alpha04
  • Runner 1.4.0-alpha04
  • Rules 1.4.0-alpha04
  • Truth 1.4.0-alpha04
  • Test Services 1.4.0-alpha04

以下是自 1.3.1-alpha03 版以来所做变更的摘要:

新功能

  • [Espresso] 改进了各种 Espresso 断言的错误消息
  • [Truth] 向 LocationSubject 添加了若干个实用程序方法

API 变更

  • 添加了 InstrumentationRegistry.registerInstrumentationProvider

bug 修复

  • 移除了过于冗长的 ActivityLifecycleMonitorImpl 回调日志记录。

依赖项变更

版本 1.3.1

版本 1.3.1-alpha03

2021 年 1 月 11 日

这是 AndroidX Test 1.3.1 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.3.1-alpha03
  • Espresso 3.4.0-alpha03
  • Intents 3.4.0-alpha03
  • JUnit 1.1.3-alpha03
  • Monitor 1.3.1-alpha03
  • Orchestrator 1.3.1-alpha03
  • Runner 1.3.1-alpha03
  • Rules 1.3.1-alpha03
  • Truth 1.3.1-alpha03
  • Test Services 1.3.1-alpha03

以下是自 1.3.1-alpha02 版以来所做更改的摘要:

新功能

  • 支持在类级别使用 UIThreadTest

bug 修复

  • 在 InstrumentationActivityInvoker 中取消注册 ActivityResultWaiter(如果尚未对其取消注册)
  • 运行程序:将 TestEventClient 的“not primary instr”日志消息降为警告,因为它是多进程测试中的预期条件
  • Espresso:更新了 HasSiblingMatcher,以便只检查同级(非自身)。
  • 修复了 espresso.idling.resource 的工件名称 [#809]
  • 公开了 setMasterPolicyTimeoutWhenDebuggerAttached 功能 [#814]

依赖项变更

  • 更新了 espresso.accessibility 和 espresso.contrib 以依赖于与 AndroidX 兼容的 com.google.android.apps.common.testing.accessibility.framework:accessibility-test-framework:3.1。因此,此版本需要具有 java8 源/目标兼容性。 [#492]

版本 1.3.1-alpha02

2020 年 10 月 20 日

这是 AndroidX Test 1.3.1 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.3.1-alpha02
  • Espresso 3.4.0-alpha02
  • Intents 3.4.0-alpha02
  • JUnit 1.1.3-alpha02
  • Monitor 1.3.1-alpha02
  • Orchestrator 1.3.1-alpha02
  • Runner 1.3.1-alpha02
  • Rules 1.3.1-alpha02
  • Truth 1.3.1-alpha02
  • Test Services 1.3.1-alpha02

以下是自 1.3.1-alpha01 版以来所做更改的摘要:

新功能

  • 抢先了解一下新的 Espresso BoundedDiagnosingMatcher 基类 API,该 API 可提供更好的错误消息传递。

bug 修复

  • 修复了 API 30 上的 Orchestrator clearPackageData [#743]

版本 1.3.1-alpha01

2020 年 10 月 15 日

这是 AndroidX Test 1.3.1 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.3.1-alpha01
  • Espresso 3.4.0-alpha01
  • Intents 3.4.0-alpha01
  • JUnit 1.1.3-alpha01
  • Monitor 1.3.1-alpha01
  • Orchestrator 1.3.1-alpha01
  • Runner 1.3.1-alpha01
  • Rules 1.3.1-alpha01
  • Truth 1.3.1-alpha01
  • Test Services 1.3.1-alpha01

以下是自 1.3.0 版以来所做更改的摘要:

新功能

  • 为负面条件添加了 Espresso ViewMatcher API
  • 允许从 Espresso IdlingRegistry 取消注册 Looper
  • 支持通过 java.util.ServiceLoader 指定 junit RunListener

bug 修复

  • 改进了对测试失败时的大型堆栈轨迹的处理 [#729 和 #269]
    • 移除了测试运行程序框架相关的堆栈帧
    • 将堆栈轨迹截断到上限 64KB,以避免 Binder 限制事务错误
  • Espresso:改进了不存在 Activity 时的错误消息传递
  • 改进了 Instrumentation#runOnMainSync 异常错误处理
  • 为 Orchestrator 和 Services 添加了软件包可见性条目,以修复使用 targetSdk 30 时出现的 Orchestator 问题 [#743]
  • 改进了 -e timeout_msec 和 AndroidJUnit4 的文档
  • 将 ActivityOptions 发送到 BootstrapActivity [#685]
  • 通过让 ViewMatchers#assertThat 能够使用 Matcher.describeMismatch,改进了其错误消息传递
  • 修复了使用 Espresso-Remote 时出现的缺少脱糖 ThrowableExtension 错误 [issuetracker.google.com/170228109]
  • 通过添加 androidx.test.espresso.web.bridge 类,修复了 Android API 小于 19 时 Espresso-Web 出现的相关问题

版本 1.3.0

版本 1.3.0

2020 年 8 月 25 日

这是 AndroidX Test 1.3.0 的稳定版。 它对下列库进行了更新:

  • Core 1.3.0
  • Espresso 3.3.0
  • Intents 3.3.0
  • JUnit 1.1.2
  • Monitor 1.3.0
  • Orchestrator 1.3.0
  • Runner 1.3.0
  • Rules 1.3.0
  • Truth 1.3.0
  • Test Services 1.3.0

自 1.3.0-rc03 以来没有任何变化。以下是自 1.2.0 版以来所做更改的摘要:

新功能

  • 支持通过 SdkSuppress#codeName 按预发布 SDK 进行过滤
  • 针对位置添加了 Truth 扩展库
  • 为软件包字符串和可解析数组添加 Truth 断言。
  • 在 ActivityScenario 中支持 ActivityOptions
  • 使 Activity 生命周期转换超时可配置
  • 处理通过隐式 intent 启动的 Activity。(问题修复 496)
  • 添加了 BundleMatchers.isEmpty() 和 isEmptyOrNull() 方法
  • 允许不使用 Intents.init 的 Intents.release
  • 添加了 ViewMatchers.isFocused()

API 变更

  • 弃用了 ActivityTestRule,改为使用 ActivityScenario/ActivityScenarioRule
  • 允许 ServiceTestRule 的子类自定义超时

bug 修复

  • 修复了过滤参数化方法的问题
    • 还修复了使用 Orchestrator 运行参数化测试的问题 [#215,https://issuetracker.google.com/119838413]
  • 修复了在 API 29 上运行时“出现运行时权限对话框”的问题
  • 为 ActivityScenario 中使用的空 Activity 跳过启动动画和结束动画。(问题修复 411)
  • 处理通过隐式 intent 启动的 Activity。(问题修复 496)
  • 使 Kotlin 软件包名称具有唯一性,并在使用 AGP 4.1 构建时修复日志垃圾 [#680]
  • 仅当 AndroidJUnit4 运行程序位于类路径时,才委派给 RobolectricTestRunner
  • Espresso contrib:在需要使用 RecyclerView.findViewHolderForPosition 方法的地方使用替换项代替
  • 修复了在启用 AccessibilityChecks 的情况下进行测试时的 NoSuchMethodError (#376)
  • 修复了 Espresso 因处理消息(而非闲置资源)处于忙碌状态时的错误消息
  • ViewMatchers.isDisplayingAtLeast() 适用于反比例视图。
  • 增强了 WithIdMatcher 的错误消息传递
  • 移除了 waitForAtLeastOneActivityToBeResumed 中的虚假等待。
  • 为 ACTION_UP 设置正确的元状态
  • 解决了缺少 androidx_test_espresso_contrib_drawer_layout_tag 字段的问题 [#671]
  • 改善了 AndroidJUnitRunner 中的类路径扫描错误处理:忽略所有未找到的类和链接错误(问题修复439)
  • 通过 RunnerArgs 创建 RunListeners 之前,初始化 InstrumentationRegistry

依赖项变更

  • Truth:更新至 com.google.truth:truth:1.0 和 com.google.guava:guava:27.0.1-android

版本 1.3.0-rc03

2020 年 8 月 5 日

这是 AndroidX Test 1.3.0 的第三个候选版本。它对下列库进行了更新:

  • Core 1.3.0-rc03
  • Espresso 3.3.0-rc03
    • 移除了以前的 RC 版和 Beta 版 build 中错误纳入的一些尚未做好发布准备的 API
  • Intents 3.3.0-rc03
    • 移除了以前的 RC 版和 Beta 版 build 中错误纳入的一些尚未做好发布准备的 API
  • JUnit 1.1.2-rc03
  • Monitor 1.3.0-rc03
  • Orchestrator 1.3.0-rc03
  • Runner 1.3.0-rc03
  • Rules 1.3.0-rc03
  • Truth 1.3.0-rc03
  • Test Services 1.3.0-rc03

版本 1.3.0-rc02

2020 年 7 月 28 日

这是 AndroidX Test 1.3.0 的第二个候选版本。它对下列库进行了更新:

  • Core 1.3.0-rc02
    • 使 Kotlin 软件包名称具有唯一性,并在使用 AGP 4.1 构建时修复日志垃圾 [#680]
  • Espresso 3.3.0-rc02
    • 解决了缺少 androidx_test_espresso_contrib_drawer_layout_tag 字段的问题 [#671]
  • Intents 3.3.0-rc02
  • JUnit 1.1.2-rc02
  • Monitor 1.3.0-rc02
  • Orchestrator 1.3.0-rc02
  • Runner 1.3.0-rc02
  • Rules 1.3.0-rc02
    • 添加了有关 ActivityTestRule->ActivityScenario 的转换提示
  • Truth 1.3.0-rc02
  • Test Services 1.3.0-rc02

版本 1.3.0-rc01

2020 年 5 月 28 日

这是 AndroidX Test 1.3.0 的一个候选版本。 它对下列库进行了更新:

  • Core 1.3.0-rc01
  • Espresso 3.3.0-rc01
    • 使软件包名称具有唯一性,并在使用 AGP 4.1 构建时修复日志垃圾邮件 [#573]
  • Intents 3.3.0-rc01
  • JUnit 1.1.2-rc01
  • Monitor 1.3.0-rc01
    • 使软件包名称具有唯一性,并在使用 AGP 4.1 构建时修复日志垃圾邮件 [#573]
  • Orchestrator 1.3.0-rc01
  • Runner 1.3.0-beta01
    • 使软件包名称具有唯一性,并在使用 AGP 4.1 构建时修复日志垃圾邮件 [#573]
  • Rules 1.3.0-rc01
    • 使软件包名称具有唯一性,并在使用 AGP 4.1 构建时修复日志垃圾邮件 [#573]
  • Truth 1.3.0-rc01
  • Test Services 1.3.0-rc01

版本 1.3.0-beta02

2020 年 5 月 20 日

这是 AndroidX Test 1.3.0 的一个测试版本。新 API 不太可能会更改。 它对下列库进行了更新:

  • Core 1.3.0-beta02
  • Espresso 3.3.0-beta02
  • Intents 3.3.0-beta02
  • JUnit 1.1.2-beta02
  • Monitor 1.3.0-beta02
  • Orchestrator 1.3.0-beta02
  • Runner 1.3.0-beta01
    • 使用 Orchestrator 修复运行的参数化测试 [#215, https://issuetracker.google.com/119838413]
  • Rules 1.3.0-beta02
  • Truth 1.3.0-beta02
  • Test Services 1.3.0-beta02
    • 修复了在 API 29 上运行时“出现运行时权限对话框”的问题

版本 1.3.0-beta01

2020 年 4 月 20 日

这是 AndroidX Test 1.3.0 的一个测试版本。新 API 不太可能会更改。 它对下列库进行了更新:

  • Core 1.3.0-beta01
  • Espresso 3.3.0-beta01
    • 添加了 ViewMatchers.isFocused()
    • 增强了 WithIdMatcher 的错误消息传递
  • Intents 3.3.0-beta01
    • 允许不使用 Intents.init 的 Intents.release
  • JUnit 1.1.2-beta01
  • Monitor 1.3.0-beta01
  • Orchestrator 1.3.0-beta01
  • Runner 1.3.0-beta01
    • 如果其在类路径上,则仅委托给 RobolectricTestRunner
    • 支持通过 SdkSuppress#codeName 按预发布 SDK 进行过滤
  • Rules 1.3.0-beta01
    • 弃用 ActivityTestRule
  • Truth 1.3.0-beta01
    • 使 LocationSubject 替换 isEqualTo
  • Test Services 1.3.0-beta01

版本 1.3.0-alpha05

2020 年 3 月 17 日

这是 AndroidX Test 1.3.0 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.3.0-alpha05
    • 为 ActivityScenario 中使用的空 Activity 跳过启动动画和结束动画。(问题修复 411)
    • 处理通过隐式 intent 启动的 Activity。(问题修复 496)
  • Espresso 3.3.0-alpha05
    • ViewMatchers.isDisplayingAtLeast() 适用于反比例视图。
    • 移除了 waitForAtLeastOneActivityToBeResumed 中的虚假等待。
    • 为 ACTION_UP 设置正确的元状态
  • Intents 3.3.0-alpha05
  • JUnit 1.1.2-alpha05
  • Monitor 1.3.0-alpha05
  • Orchestrator 1.3.0-alpha05
  • Runner 1.3.0-alpha05
    • 扫描测试的类路径时忽略所有 LinkageError 异常。(问题修复 439)
    • 通过 RunnerArgs 创建 RunListeners 之前,初始化 InstrumentationRegistry
  • Rules 1.3.0-alpha05
  • Truth 1.3.0-alpha05
  • Test Services 1.3.0-alpha05

版本 1.3.0-alpha04

2020 年 2 月 20 日

这是 AndroidX Test 1.3.0 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.3.0-alpha04
  • Espresso 3.3.0-alpha04
    • 修复了 Espresso 因处理消息(而非闲置资源)处于忙碌状态时的错误消息
  • Intents 3.3.0-alpha04
  • JUnit 1.1.2-alpha04
  • Monitor 1.3.0-alpha04
  • Orchestrator 1.3.0-alpha04
  • Runner 1.3.0-alpha04
    • 修复了如果出现 StrictMode 违规问题,AndroidJUnitRunner 报告测试失败的问题
    • 添加了其他信息,以便 JUnit4 测试类格式有误时更轻松地进行诊断
  • Rules 1.3.0-alpha04
  • Truth 1.3.0-alpha04
  • Test Services 1.3.0-alpha04
    • 在测试服务中添加测试存储服务

以下是版本 1.3.0-alpha04 中包含的提交内容的完整列表。

版本 1.3.0-alpha03

2019 年 12 月 3 日

这是 AndroidX Test 1.3.0 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.3.0-alpha03
    • 在 ActivityScenario 中支持 ActivityOptions
  • Espresso 3.3.0-alpha03
    • 修复了在启用 AccessibilityChecks 的情况下进行测试时的 NoSuchMethodError (#376)
  • Intents 3.3.0-alpha03
  • JUnit 1.1.2-alpha03
  • Monitor 1.3.0-alpha03
  • Orchestrator 1.3.0-alpha03
  • Runner 1.3.0-alpha03
    • 在对测试执行类路径扫描时忽略 NoClassDefFoundErrors
    • 针对未处理的异常添加了更好的错误处理方式
    • 允许通过运行程序参数选择停用“waitForActivitiesToComplete”
  • Rules 1.3.0-alpha03
  • Truth 1.3.0-alpha03
    • 更新了附加地址信息,以便更好地处理 null 值。
    • 将 stringArrayList 和 parcelableArrayList 方法添加到 BundleSubject

版本 1.2.1

版本 1.2.1-alpha02

2019 年 7 月 15 日

这是 AndroidX Test 1.2.1 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.2.1-alpha02
    • 使 Activity 生命周期转换超时可配置
  • Espresso 3.3.0-alpha02
  • Intents 3.3.0-alpha02
    • 添加了 BundleMatchers.isEmpty() 和 isEmptyOrNull() 方法
  • JUnit 1.1.2-alpha02
  • Monitor 1.3.0-alpha02
  • Orchestrator 1.3.0-alpha02
  • Runner 1.3.0-alpha02
  • Rules 1.3.0-alpha02
  • Truth 1.3.0-alpha02
    • 更新至 com.google.truth:truth:1.0 和 com.google.guava:guava:27.0.1-android

版本 1.2.1-alpha01

2019 年 6 月 17 日

这是 AndroidX Test 1.2.1 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.2.1-alpha01
    • 添加了针对“MethodParameter 属性中的参数计数无效”编译警告的工具链修复方案
  • Espresso 3.3.0-alpha01
    • contrib:在需要使用 RecyclerView.findViewHolderForPosition 方法的地方使用替换项代替
  • Intents 3.3.0-alpha01
  • JUnit 1.1.2-alpha01
  • Monitor 1.3.0-alpha01
  • Orchestrator 1.3.0-alpha01
  • Runner 1.3.0-alpha01
  • Rules 1.3.0-alpha01
    • 允许 ServiceTestRule 的子类自定义超时
  • Truth 1.3.0-alpha01
    • 针对位置添加了 Truth 扩展库

版本 1.2.0

版本 1.2.0

2019 年 5 月 29 日

这是 AndroidX Test 1.2.0 的稳定版。 它对下列库进行了更新:

  • Core 1.2.0
  • Espresso 3.2.0
  • Intents 3.2.0
  • JUnit 1.1.1
  • Monitor 1.2.0
  • Orchestrator 1.2.0
  • Runner 1.2.0
  • Rules 1.2.0
  • Truth 1.2.0

版本 1.2.0-beta01

2019 年 5 月 6 日

这是 AndroidX Test 1.2.0 的 Beta 版。 它对下列库进行了更新:

  • Core 1.2.0-beta01
    • 更妥善地处理在一个测试中使用多个 ActivityScenario 的情况
  • Espresso 3.2.0-beta01
  • Intents 3.2.0-beta01
  • JUnit 1.1.1-beta01
  • Monitor 1.2.0-beta01
    • Instrumentation.runOnMainSync() 会将异常回传至发起调用的线程
  • Orchestrator 1.2.0-beta01
  • Runner 1.2.0-beta01
  • Rules 1.2.0-beta01
  • Truth 1.2.0-beta01

版本 1.2.0-alpha05

2019 年 4 月 30 日

这是 AndroidX Test 1.2.0 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.2.0-alpha05
    • 使 ActivityScenario#onActivity 可从主线程进行调用
  • Espresso 3.2.0-alpha05
    • 进一步减少了 openActionBarOverflowOrOptionsMenu 的不稳定行为
  • Intents 3.2.0-alpha05
  • JUnit 1.1.1-alpha05
  • Monitor 1.2.0-alpha05
  • Orchestrator 1.2.0-alpha05
  • Runner 1.2.0-alpha05
  • Rules 1.2.0-alpha05
  • Truth 1.2.0-alpha05
    • 更新至上游 Google Truth 0.44

版本 1.2.0-alpha04

2019 年 4 月 18 日

这是 AndroidX Test 1.2.0 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.2.0-alpha04
  • Espresso 3.2.0-alpha04
    • 对 openActionBarOverflowOrOptionsMenu 进行了碎片化
    • 在 androidx.test 中添加了钩子机制,以模拟本地测试环境的窗口焦点发生更改的情况
  • Intents 3.2.0-alpha04
  • JUnit 1.1.1-alpha04
  • Monitor 1.2.0-alpha04
  • Orchestrator 1.2.0-alpha04
  • Runner 1.2.0-alpha04
    • 如果不存在旧版 android.test 类,则使用 androidx.test
  • Rules 1.2.0-alpha04
  • Truth 1.2.0-alpha04

版本 1.2.0-alpha03

2019 年 4 月 7 日

这是 AndroidX Test 1.2.0 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Core 1.2.0-alpha03
    • 将 getState() API 添加到 ActivityScenario
  • Espresso 3.2.0-alpha03
    • 将 WithTagKeyMatcher 转换为接受 Matcher<?>,而不是 Matcher
    • 更新了指向 Espresso 设置文档的链接
    • 修复了在不同的语言区域内运行时的调试日志记录
  • Intents 3.2.0-alpha03
  • JUnit 1.1.1-alpha03
  • Monitor 1.2.0-alpha03
    • 再一次尝试清除了异常处理程序,以防止 Robolectric 中出现内存泄漏。
  • Orchestrator 1.2.0-alpha03
  • Runner 1.2.0-alpha03
    • 添加了 tests_regex AJUR 选项,以运行与给定正则表达式匹配的测试。
  • Rules 1.2.0-alpha03
  • Truth 1.2.0-alpha03
    • 公开了 ParcelableSubject API
    • 添加了 BundleSubject#longInt
    • 添加了 IntentSubject#hasComponent

版本 1.1.1

版本 1.1.1-alpha02

2019 年 3 月 7 日

这是 AndroidX Test 1.1.1 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Espresso 3.2.0-alpha02
  • Intents 3.2.0-alpha02
    • 添加了 IntentMatchers#filterEquals
    • 修复了 Intents#intended() 中的 Activity 生命周期计时错误。现在,它会在检查 Activity 状态之前使主 Looper 处于空闲状态。
  • Runner 1.1.2-alpha02
    • 允许指定软件包和类过滤器。
  • Truth 1.2.0-alpha02
  • JUnit 1.1.1-alpha02
  • Core 1.1.1-alpha02
    • 在无法解析 Activity 时抛出 RuntimeException。
  • Monitor 1.1.2-alpha02
    • 清除了对未捕获的异常处理程序的引用,以防止 Robolectric 中出现内存泄漏。
  • Rules 1.1.2-alpha02
  • Orchestrator 1.1.2-alpha02

版本 1.1.1-alpha01

2019 年 1 月 30 日

这是 AndroidX Test 1.1.1 的 Alpha 版。新的 API 可能会发生变化。它对下列库进行了更新:

  • Espresso 3.1.2-alpha01
    • 添加了方法 AccessibilityChecks.disable()。
  • Intents 3.1.2-alpha01
    • 添加了 IntentMatchers#hasDataString
    • 修复了 Intents#intended() 中的 Activity 生命周期计时错误。现在,它会在检查 Activity 状态之前使主 Looper 处于空闲状态。
  • Runner 1.1.2-alpha01
    • AndroidJUnitRunner 现在接受在 -e 注释选项中使用以英文逗号分隔的类列表,以便仅运行具有所有给定注释的测试
  • Truth 1.1.1-alpha01
    • 将 filtersEquallyTo() 添加到 IntentSubject,以便使用 Intent.filterEquals() 比较 Intent。
  • JUnit 1.1.1-alpha01
  • Core 1.1.1-alpha01
  • Monitor 1.1.2-alpha01
  • Rules 1.1.2-alpha01
  • Orchestrator 1.1.2-alpha01

版本 1.1.0

版本 1.1.0

2018 年 12 月 13 日

这是 AndroidX Test 1.1.0 的稳定版。 它对下列库进行了更新:

  • Espresso 3.1.1
  • Runner 1.1.1
  • Rules 1.1.1
  • Monitor 1.1.
  • AndroidTestOrchestrator 1.1.1
  • Core 1.1.0
  • Truth 1.1.0
  • JUnit 1.1.0

  • Core 1.1.0

    • 使 ActivityScenario 支持会启动另一 Activity 的 Activity

版本 1.1.0-beta01

2018 年 12 月 6 日

这是 AndroidX Test 1.1.0 的 beta01 版。 它对下列库进行了更新:

  • Core 1.1.0-beta01
    • 新增了 core-ktx kotlin 扩展工件!它包括适用于 Kotlin 的 ActivityScenario.launchActivity API
    • 新增了 ActivityScenario API,用于使用自定义 Intent 启动 Activity
    • 新增了 ActivityScenario API,用于接收 Activity 结果
    • 使 ActivityScenario 可关闭
  • Espresso3.1.1-beta01
    • 修改了 withResourceNameMatcher 和 HumanReadables,使其与 API 28 兼容。
    • 更新了 ReplaceTextAction 的说明以包括 stringToBeSet
    • 在 Robolectric Paused Looper 模式下支持 Espresso。
  • JUnit 1.1.0-beta01
    • 新增了 ActivityScenarioRule API,用于在设置测试时自动启动 Activity,并在测试拆解后关闭 Activity
    • 新增了 junit-ktx kotlin 扩展工件!它包括适用于 Kotlin 的 ActivityScenarioRule API
  • Runner 1.1.1-beta01
    • 使 -e 软件包和 -e testFile 在接收软件包时行为保持一致
  • Truth 1.1.0-beta01
    • 添加了 bool、parcelable 和 parcelableAsType BundleSubject API
  • Rules 1.1.1-beta01
  • Monitor 1.1.1-beta01
  • AndroidTestOrchestrator 1.1.1-beta01

版本 1.0.0

版本 1.0.0

2018 年 10 月 24 日

  • 所有库
    • 将 minSdkVersion 设置为 14,并将 targetSdkVersion 设置为 28
  • Espresso 3.1.0
    • 修复了 withContentDescription,以使用非字符串类型
    • 添加了对在 Robolectric 上使用 Espresso 的支持
    • 问题 73044169:启用 textAllCaps 后,无法使用 Espresso ViewMatchers.withText
    • 添加了对注入一系列动作事件的支持
  • Intent
    • 添加了测试版 API 以检索 Intent 列表,旨在与新增的 Truth 断言配合使用
  • Runner 1.1.0
    • 添加了对免安装应用的支持
    • 弃用了 androidx.test.runner.AndroidJUnit4 并改为使用 ndroidx.test.ext.junit.runners.AndroidJUnit4
  • Monitor 1.1.0
    • 弃用了 androidx.test.InstrumentationRegistry 并改为使用 androidx.test.platform.app.InstrumentationRegistry 和 androidx.test.core.app.ApplicationProvider
  • AndroidTestOrchestrator 1.1.0
    • 在同时传递“coverage”和“coverageFilePath”参数时,仅启用 Orchestrator coverage 处理过程。
    • 仅在设置了-debug 时等待调试程序,而非等待列出 ATO 测试用例。新增了 orchestratorDebug 标记,用于调试 Orchestrator 本身
  • Core 1.0.0
    • 新增了工件!它包括新的 API,支持同时在本地和设备端对以下项进行测试:
      • 检索上下文:ApplicationProvider
      • 控制 Activity 生命周期:ActivityScenario(测试版)
      • MotionEvent、PackageInfo 的生成工具
      • Parceable 实用程序类
  • Truth 1.0.0
    • 新增了工件!它包括 Notification、Intent、Bundle、Parcelable 和 MotionEvent 的自定义 Truth 主题
  • JUnit 1.0.0
    • 新增了工件!它包括 JUnit 运行程序类 androidx.test.ext.junit.runners.AndroidJUnit4,该类支持本地和设备端测试。