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 的稳定版本
- 核心
- 使 ActivityScenario 支持启动另一个 Activity 的 Activity
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-ktx kotlin 扩展工件!包括一个 kotlin 友好的 ActivityScenario.launchActivity API
- 用于使用自定义 Intent 启动 Activity 的新 ActivityScenario API
- 用于接收 Activity 结果的新 ActivityScenario API
- 使 ActivityScenario 可关闭
- Espresso
- 修改 withResourceNameMatcher 和 HumanReadables 以兼容 API 28。
- 更新 ReplaceTextAction 的描述以包含 stringToBeSet
- 支持 Robolectric 暂停循环器模式下的 Espresso。
- JUnit
- 新的 ActivityScenarioRule API,用于在测试设置和拆卸时自动启动和关闭 Activity
- 新的 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:当 textAllCaps 启用时,Espresso ViewMatchers.withText 不起作用
- 添加对注入一系列运动事件的支持
- Intents
- 添加用于检索 Intent 列表的 Beta 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”参数时才启用编排器覆盖处理。
- 仅当设置了 -debug 但不用于列出 ATO 测试用例时才等待调试器。已添加新的 orchestratorDebug 标志用于调试编排器本身
- 核心
- 新工件!包含支持本地和设备上测试的新 API,用于
- 检索上下文:ApplicationProvider
- 控制 Activity 生命周期:ActivityScenario(beta)
- MotionEvent、PackageInfo 的构建器
- Parceables 实用程序类
- 新工件!包含支持本地和设备上测试的新 API,用于
- Truth
- 新工件!包含 Notification、Intent、Bundle、Parcelable 和 MotionEvent 的自定义 Truth subject
- 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。这是我们严重的疏忽。因此,此版本中存在一个破坏性的公共 API 更改来解决此问题。我们引入了一个 Guava Optional 类的丑陋包装器,名为 EspressoOptional,它位于“android.support.test.espresso.util”命名空间下。使用泄露的 Guava Optional API 的开发人员需要在更新到此新版本期间更改其导入和引用以使用 EspressoOptional。对于由此可能造成的不便,我们深表歉意。
- onView() 和 onData() API 现在标记为 @CheckReturnValue 以防止错误
- 修复 espresso-core POM 文件,使其不拉取“rules”依赖项,而是让 espresso-intents POM 拉取它。这对于开发人员来说应该是 NoOp 更改,因为 espresso-intents 不能在没有 espresso-core 的情况下使用。
- 问题 65486414:Espresso 缺少 Guava 依赖项
- 问题 65576174:Espresso IdlingResourceRegistry.sync 导致第二次测试失败
- 问题 65568629:Espresso.onIdle 未使用 IdlingRegistry
- 问题 69333598:espresso 3.0.1 与 android 库模块中的 play-services-auth:11.6.0 不兼容。
- 问题 64062890:AdapterViewProtocol 接口暴露的内部 Optional 类型
- 问题 64091847:Espresso 3.0.0 不应依赖于测试运行器
- 问题 73722050:espresso-contrib 3.0.2-alpha1 包含 android.arch.{lifecycle/core} 类
- API 破坏性变更
- Espresso-remote
- 这是一个全新的工件。我们将 Espresso 的所有多进程功能从 espresso-core 工件中分离出来。这更清晰,并且应该显著减小 espresso-core 的总体大小和方法计数。
- Runner
- 规则
- 确保在生命周期更改后释放对正在测试的 Activity 的引用。在测试期间,现在可以使用从 #getActivity() 获得的引用直接操作 Activity。如果 Activity 完成并重新启动,#getActivity() 返回的引用现在始终指向 Activity 的当前实例。
- 问题 64389280:GrantPermissionRule 不提供 WRITE_EXTERNAL_STORAGE
- 问题 37065965:ActivityTestRule 在方向改变后泄露 Activity
- 问题 75254050:ActivityTestRule 在配置更改期间不更新 Activity 实例
- 问题 64464625:无法在 Activity 的 finish() 方法中进行 UI 工作
- AndroidTestOrchestrator
- 传递
-e coverage true -e coverageFilePath /sdcard/foo/
标志以在给定位置生成覆盖文件(应用必须具有写入给定位置的权限)。覆盖文件命名约定现在看起来像这样com.foo.Class#method1.ec
。请注意,这仅在隔离模式下运行时受支持。此外,它不能与 AndroidJUnitRunner 的coverageFile
标志一起使用。因为生成的覆盖文件会相互覆盖。 - 如果您希望编排器在测试调用之间运行
pm clear context.getPackageName()
和pm clear targetContext.getPackageName()
命令,请传递-e clearPackageData
标志。请注意,clear 命令中的上下文是正在测试的应用上下文。 - 修复 - 当运行空测试时,即目标中没有 @Test 时,测试结果与旧模式不同。
- 问题 72758547:测试编排器导致 Jacoco 覆盖数据不完整,只有上次测试运行数据
- 问题 67916042:Android 测试编排器:由于内存不足导致进程崩溃,执行停止
- 问题 77752735:编排器因 TransactionTooLargeException 崩溃
- 问题 77549481:测试编排器应在每次测试后运行“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
现在具有可调用响应,允许测试在捕获触发的 intent 后但在返回Instrumentation.ActivityResult
对象之前执行。
Runner
拆分出 monitor maven 工件
com.android.support.test:monitor:<version>
,适用于需要MonitoringInstrumentation
但不需要测试运行和 JUnit 功能的用户。如果您使用
com.android.support.test:runner:<version>
,一切都会按预期工作,因为 Gradle 会自动将monitor
模块作为runner
模块的依赖项引入。添加了标志
newRunListenerOrderMode
。当为true
时,用户定义的监听器在默认监听器之前运行。(我们预计此行为最终会成为默认行为。)问题 65828576:当在用
@Ignore
注解的类中运行测试时TestRequestBuilder
崩溃(独立于测试运行或 JUnit 功能)。
AndroidTestOrchestrator
- 现在以与非编排
AndroidJUnitRunner
相同的方式处理空测试。 - 编排器现在可以处理来自
AndroidJUnitRunner
的非常大的标准输出。
- 现在以与非编排
Espresso 3.0.1、Runner 1.0.1、Rules 1.0.1、AndroidTestOrchestrator 1.0.1 (2017-08-28)
Espresso
- 添加了一个
IdlingPolicy
选项,用于在步骤调试器连接到 VM 时抑制onTimeout()
。 - 问题 64024656、64247586 和 64525881:除非用户通过包含
-e
类运行器参数来加载特定类,否则不要报告类加载失败。 - 问题 64877246:将缺失的类添加到 sources 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, 公告)
破坏性变更
- 所有工件
- 放弃对 API 级别低于 15 的支持——但是,min SDK 仍然指向 API 级别 9,以给用户升级时间
- Espresso
- 已弃用的
android.support.test.espresso.contrib.CountingIdlingResource
类已被删除并移至android.support.test.espresso.idling.CountingIdlingResource
- Guava 现在已被 jarjar'd 到另一个“内部”命名空间——如果您意外地通过 Espresso 命名空间使用 Guava API,您可能会看到破坏
- 删除对阴影 Guava 的任何引用(
.core.deps.guava.
) - 将您的支持库版本升级到 25.4.0 或更高版本
- 删除对阴影 Guava 的任何引用(
- 已弃用的
已知问题
- AndroidTestOrchestrator
-e numShards
和-e shardIndex
运行器参数目前不受支持- 参数化测试目前不受支持
新功能
- Espresso
- API 26 上
espresso-core
和espresso-web
的新 多进程 Espresso 支持,但不支持espresso-contrib
- 新的轻量级
IdlingRegistry
API- 作为
com.android.support.test.espresso:espresso-idling-resource:3.0.0
的一部分发布 - 已弃用的方法
- 作为
- 新 API 有助于与
Executors
同步- 新的 Maven 工件:
com.android.support.test.espresso.idling:idling-concurrent:3.0.0
- 包含
IdlingScheduledThreadPoolExecutor
和IdlingThreadPoolExecutor
类
- 新的 Maven 工件:
- 新 API 帮助同步网络请求和响应。
- 新的 Maven 工件:
com.android.support.test.espresso.idling:idling-net:3.0.0
- 包含
UriIdlingResource
类
- 新的 Maven 工件:
- 新的
espresso-core
视图匹配器hasBackground()
匹配View
对象的背景可绘制资源hasTextColor()
匹配TextView
对象的颜色
- 新的视图操作方法
- 增强的
scrollTo()
视图操作以与ListView
的后代一起工作 repeatedlyUntil()
– 对视图执行给定的ViewAction
,直到视图匹配所需的ViewMatchers
- 增强的
- 新的 Espresso 方法
pressBackUnconditionally()
– 类似于pressBack()
但在 Espresso 导航时不会抛出异常noActivity()
– 无需等待活动即可执行ViewAction
或ViewAssertion
onIdle()
– 循环主线程直到应用程序空闲onIdle(Callable<T>)
– 与onIdle()
相同,但接受一个额外的Callable
作为参数,该参数在应用程序空闲后执行
webScrollIntoView()
– 新的espresso-web
原子,允许您在WebView
内滚动
- API 26 上
- Runner
-
InterceptingActivityFactory
和SingleActivityFactory
– 提供了一种通过覆盖startService()
和sendBroadcast()
等方法来隔离测试活动的功能 - 添加对将 JUnitParams 与
AndroidJUnitRunner
结合使用的支持 - 开始在核心测试运行器级别处理
@UiThreadTest
并弃用@UiThreadTestRule
– 这使得可以直接在用@Before
和@After
注解的方法上使用@UiThreadTest
注解 -
@SdkSupress
注解现在支持maxSdkVersion
值(问题 37067792) -
-e classLoader
– 提供通过运行器参数传递类加载器的能力 -
-e filter
– 添加对使用运行器参数指定自定义 JUnit 过滤器的支持 -
-e runnerBuilder
– 允许开发人员提供他们自己的RunnerBuilder
实现,可以确定是否以及如何针对特定类运行
-
- 规则
ProviderTestRule
– 用于测试ContentProvider
对象的新 APIgetActivityResult()
和ActivityResultMatchers
– 用于检索已调用setResult()
的 Activity 的 Activity 结果的新 API
- AndroidTestOrchestrator
- Android Test Orchestrator 提供了一种收集和运行测试的新方法,强调正确性和隔离性。Orchestrator 是一个独立的 Instrumentation 进程,为每个测试生成一个 Instrumentation runner 进程并收集结果。
- 应用程序崩溃会使运行器 Instrumentation 停止,但不会使 Orchestrator 停止,从而允许您的测试套件继续运行
- 需要安装 orchestrator APK –
'com.android.support.test:orchestrator:1.0.0'
- 版本 1.0 仅具有命令行界面;与 Android Studio 和 Firebase Test Labs 的集成正在计划中
- Android Test Orchestrator 提供了一种收集和运行测试的新方法,强调正确性和隔离性。Orchestrator 是一个独立的 Instrumentation 进程,为每个测试生成一个 Instrumentation runner 进程并收集结果。
错误修复
- Espresso
- 改进了根视图同步,显著减少了不稳定性
- 修复了
IdlingResourceRegistry
的损坏 - 更好地与
IdlingResource
对象同步 - 问题 37132680:Espresso 不等待对话框创建完成就执行下一步操作
- 问题 37103280:Espresso 应该提供 ProGuard 消费者规则,以便消费者无需添加它们
- 问题 37094726:Espresso Intents 包含不必要的应用程序标签
- 问题 37093953:Espresso:没有可用的 null/empty 错误文本检查
- 问题 37071776:
espresso-core
嵌入了 Guava 的.pom
文件 - 问题 37062612:
release()
中的 NPE - 问题 37063389:将 Guava 和
espresso-web
作为androidTest
依赖项无法编译 - 问题 37070533:在 Android 设计支持库中添加对
NavigationView
的支持
- Runner
- 修复了
@UiThreadTest
与@Test(timeout = 123)
结合使用的能力 - 修复了
-e notClass
运行器参数 - 修复了
-e log
以支持 JUnit3 和 JUnit4 测试套件,以及Parameterized
和Enclosed
运行器 - 问题 37663530:在每个测试方法之前和之后等待所有活动完成
- 问题 37132680:Espresso 不等待对话框创建完成就执行下一步操作
- 问题 37123213:在 x86_64 ABI 上忽略
@RequiresDevice
- 问题 37101485:
AndroidJUnitRunner
的某些清单提供的参数(如测试大小、注解和调试)被忽略 - 问题 37082857:Espresso 半并行测试执行在静态对象上失败
- 问题 37063396:上下文未通过
ProviderTestCase2
初始化(导致NullPointerException
)
- 修复了
- 规则
- 修复了
ActivityTestRule
生命周期,以统一常规和延迟ActivityTestRule
初始化之间的行为 - 问题 37079943:修复
ServiceTestRule
以允许重新绑定 - 问题 37109342:添加
getActivityResult()
和ActivityResultMatchers
- 修复了
- UiAutomator
- 将
setUiAutomationFlags()
用于UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES
– 这允许在其他辅助功能服务运行时使用UiAutomator
- 问题 37082813:当 API 级别为 19 或更低时,在空
EditText
对象上执行setText()
会抛出NullPointerException
- 将
其他值得注意的变更
- 二进制文件现在通过 Google Maven 发布
- 减小了
espresso-core
和espresso-web
JAR 文件的大小 – 嵌入的依赖项现在已应用 ProGuard - 所有
.aar
文件现在都包含 ProGuard 规则 - 将
proguard_library.cfg
文件添加到已发布工件 Tapper
接口有一个新版本的sendTap()
需要实现
外部贡献
- Espresso
- Runner
- 规则
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
- 问题 187249:
- runner
- 问题 196066:
AndroidJUnitRunner
中的-e log true
参数不会绕过实际测试 - 在运行器的
onCreate()
中等待调试器 - 将所有支持的测试注解从平台移入 ATSL
- 删除了有关没有 JSBridge 的堆栈跟踪转储
- 修复了
AndroidAnnotatedBuilder
- 问题 196066:
其他值得注意的变更
ActivityTestRule
、UiThreadTestRule
、IntentsTestRule
和ServiceTestRule
已退出 Beta 版- 添加代码样式设置文件以实现统一的代码格式
Espresso 2.2.1、Runner/Rules 0.4 (2015-09-15)
新功能
- rules
- 添加了新的
IntentsTestRule
构造函数,以与ActivityTestRule
完全兼容
- 添加了新的
- 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
错误修复
- espresso
ViewActions.closeSoftKeyboard()
现在确保软键盘完全消失- 修复了 Espresso 的
Espresso.pressBack()
方法在 API 级别 21 及更高版本上的同步问题 - 修复了 API 级别 23 上键盘关闭动画的同步问题
- rules
- 修复了 API 级别 23 上的
ServiceTestRule
,startService()
必须始终使用显式Intent
调用
- 修复了 API 级别 23 上的
- runner
- 修复了损坏的 gradle
JaCoCo
支持 - 修复了损坏的测试分片支持
- 修复了
JUnit3
样式测试超时后测试运行器中状态不一致的问题
- 修复了损坏的 gradle
其他值得注意的变更
- 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
规则
- runner 0.3
- 从 JUnit v4.10 升级到 JUnit v4.12
- 迁移到使用 Hamcrest v1.3
错误修复
- 修复了
DrawerActions
泄露ParentListener
的问题 - 假设失败现在被视为忽略测试而不是失败测试
- 修复了
MonitoringInstrumentation
通过ExecutorService
泄露活动实例的问题 - 修复了孤立活动停留在停止阶段的问题
- 更新
Until.scrollFinished()
以在未生成滚动事件时返回 true。防止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.2
和com.android.support.test:rules:0.2
。
新功能
- espresso-intents:一个类似 Mockito 的 API,通过允许测试作者验证和存根传出 intent 来实现 hermetic 跨活动测试
IntentsTestRule
:扩展ActivityTestRule
,在功能 UI 测试中初始化和释放 Espresso-Intents
- espresso-core
ViewActions
:添加了在运行操作之前运行全局断言的能力。这对于基于 Espresso 构建的其他框架在执行现有 Espresso 测试套件时验证视图层次结构的状态很有用ViewMatchers.withContentDescription()
resId
重载
- rules
ActivityTestRule
:此规则提供单个活动的函数测试UiThreadRule
和UiThreadTest
注解:此规则允许用UiThreadTest
注解的测试方法在应用程序的主线程(或 UI 线程)上执行ServiceTestRule
:此规则提供服务的函数测试
- runner
ApplicationLifecycleCallback
:用于监控应用程序生命周期事件的回调- 所有运行器参数现在也可以在 Android 清单文件中使用
<meta-data>
标签指定
- UIAutomator
UiDevice.dumpWindowHierarchy()
现在可以接受File
或OutputStream
错误修复
- espresso
- Cursor 匹配器现在在未找到列时返回
false
,以便 Hamcrest 可以继续处理下一个 cursor NullPointerException
与PreferenceMatchers
withTitle
不再发生- 取消注册空闲资源不再导致 Espresso 认为我们有繁忙的空闲资源
- 更新了 Espresso Contrib 使用的支持注解版本
- Cursor 匹配器现在在未找到列时返回
- runner
AndroidJUnit4
现在跳过带有失败假设的测试
- UIAutomator
- 运行观察器以防止
StaleObjectException
- 运行观察器以防止
其他值得注意的变更
- 当我们无法使用非拉丁字符串输入文本时,添加更好的错误消息
UIAutomator 2.0 (2015-03-12)
UI Automator 现在基于 Android Instrumentation,您可以使用 ./gradlew connectedCheck
命令构建和运行测试。
Espresso 版本 2.0,测试运行器 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
中(它一直都应该在那里)
- Optional(一个 guava 依赖项)已从公共 API 中删除,以支持重新打包 guava 依赖项并避免 DEX 冲突(主要的开发痛点)。受影响的方法包括以下内容
ViewAssertion.check()
HumanReadables.getViewHierarchyErrorMessage()
新功能
- Actions
ViewActions
replaceText()
openLink()
- 向上和向下轻扫
- espresso-contrib
RecyclerViewActions
:处理与RecyclerViews
的交互PickerActions
:处理与Date
和Time
选择器的交互
- Matchers
RootMatchers
isPlatformPopup()
ViewMatchers
isJavascriptEnabled()
withSpinnerText()
withHint()
isSelected()
hasLinks()
LayoutMatchers
:用于 i18n 相关布局测试的匹配器CursorMatchers
:Cursor
对象的匹配器集合
- Assertions
PositionAssertions
,包括isLeftOf()
和isAbove()
:用于检查屏幕上元素相对位置的ViewAssertions
集合LayoutAssertions
:用于 i18n 相关布局测试的断言
- 测试应用:许多新的示例活动/测试
- 其他
Espresso.unregisterIdlingResources()
和Espresso.getIdlingResources()
:为使用IdlingResources
提供了额外的灵活性ViewInteraction.withFailureHandler()
:允许从onView()
覆盖故障处理器- 对由
CursorAdapters
支持的AdapterViews
的onData()
支持
错误修复
ViewMatchers.isDisplayed()
匹配占据整个屏幕但不再显示不足 90% 的视图- 执行对
DrawerActions.openDrawer()
的滑动操作调用不再导致IdlingResourceTimeoutException
其他值得注意的变更
- 从使用 Maven 构建切换到 Gradle
- 将 Espresso 依赖项 (Guava, Dagger, Hamcrest) 移开,以避免 DEX 冲突
- 更改为在注册和取消注册空闲资源时返回成功或失败
- Lollipop 支持:将
message.recycle()
放在接口后面,以考虑版本相关的更改 - 将目标 SDK 级别切换到 21 – 主要影响测试应用程序
版本 1.1 (发布于:2014-01-08)
Espresso
- 新的
swipeLeft
和swipeRight
ViewActions
- 多窗口支持:一项高级功能,可选择 Espresso 应在其上运行操作的目标窗口
- 对
TypeTextAction
的改进:允许在预聚焦视图中键入文本,从而更容易追加文本 - 大量错误修复
Espresso Contrib 库
- 这个新库包含补充 Espresso 但不属于核心库的功能
- 用于操作
DrawerLayout
的新DrawerActions
:它依赖于 Android Support Library,因此我们将其保留在核心 Espresso 库之外
示例测试
- 这些测试已被重新定位到与测试应用程序相同的包中
- Maven POM 已修复,删除了重复的 guava 依赖项,因此
mvn install
现在应该可以工作了