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 支持启动另一个活动的活动
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
- 使用自定义意图启动活动的新的 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 包和 -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 不起作用
- 添加支持以注入一系列运动事件
- 意图
- 添加用于检索意图列表的 beta API。用于与新的 Truth 断言一起使用
- Runner
- 添加对即时应用程序的支持
- 弃用 androidx.test.runner.AndroidJUnit4 并用 androidx.test.ext.junit.runners.AndroidJUnit4 替换
- 监控
- 弃用 androidx.test.InstrumentationRegistry 并用 androidx.test.platform.app.InstrumentationRegistry 和 androidx.test.core.app.ApplicationProvider 替换
- AndroidTestOrchestrator
- 仅当传递了“coverage”和“coverageFilePath”参数时才启用 orchestrator 覆盖率处理。
- 仅在设置 -debug 但不列出 ATO 测试用例时等待调试器。为调试 orchestrator 本身添加了一个新的 orchestratorDebug 标志
- 核心
- 新的工件!包含支持本地和设备上测试的新 API
- 检索上下文:ApplicationProvider
- 控制活动生命周期:ActivityScenario(测试版)
- MotionEvent、PackageInfo 的构建器
- 可打包工具类的实用程序类
- 新的工件!包含支持本地和设备上测试的新 API
- Truth
- 新构件!包括用于 Notification、Intent、Bundle、Parcelable 和 MotionEvent 的自定义 truth 主题
- JUnit
- 新构件!包括 JUnit 运行程序类 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 文件,使其不再引入“规则”依赖项,而是让 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
- 规则
- 确保在生命周期更改后释放对测试中活动的引用。在测试期间,现在可以使用从 #getActivity() 获取的引用直接操作活动。如果活动已完成并重新启动,则 #getActivity() 返回的引用现在始终指向活动的当前实例。
- 问题 64389280:GrantPermissionRule 不提供 WRITE_EXTERNAL_STORAGE
- 问题 37065965:ActivityTestRule 在方向更改后泄漏活动
- 问题 75254050:ActivityTestRule 在配置更改期间没有更新活动实例
- 问题 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
标志。请注意,清除命令中的上下文是测试中应用程序的上下文。 - 修复 - 运行空测试时,即目标中没有 @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
现在具有可调用的响应,允许测试在捕获已触发的意图后但在返回Instrumentation.ActivityResult
对象之前执行。
Runner
分离监控 Maven 构件
com.android.support.test:monitor:<version>
,供需要MonitoringInstrumentation
但不需要测试运行和 JUnit 功能的用户使用。如果使用
com.android.support.test:runner:<version>
,则一切正常,因为 Gradle 会自动将monitor
模块作为runner
模块的依赖项引入。添加了标志
newRunListenerOrderMode
。当true
时,用户定义的监听器在默认监听器之前运行。(我们预计此行为最终将成为默认行为。)问题 65828576:
TestRequestBuilder
在使用@Ignore
注释的类(独立,没有测试运行或 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:将缺少的类添加到源 JAR 文件。
- 添加了一个
Runner
- 简化了
ShardingFilter
逻辑。 - 问题 65025743:
@RequiresDevice
过滤器现在支持 FTL 模拟器。
- 简化了
AndroidTestOrchestrator
- 不要重复报告错误。当测试进程在失败后崩溃时,现在只为测试报告一个错误。
- 修复了编排程序的 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.
) - 将 Support Library 版本升级到 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
的一部分发布 - 已弃用方法
- 作为
- 帮助与
Executors
同步的新 API- 新的 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
之前,无需等待 ActivityonIdle()
– 循环主线程,直到应用程序空闲onIdle(Callable<T>)
– 与onIdle()
相同,但需要额外的Callable
作为参数,该参数在应用程序空闲后执行
webScrollIntoView()
– 新的espresso-web
原子,允许您在WebView
中滚动
- 针对 API 26 上的
- Runner
-
InterceptingActivityFactory
和SingleActivityFactory
– 通过覆盖startService()
和sendBroadcast()
等方法,提供了一种在与外界隔离的情况下测试 Activity 的机制 - 添加对 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 运行程序进程,并收集结果。
- 应用程序崩溃会使运行程序 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 运行程序进程,并收集结果。
错误修复
- Espresso
- 改进了根视图同步,以显著减少不稳定性
- 修复了
IdlingResourceRegistry
的损坏 - 针对
IdlingResource
对象进行了更好的同步 - 问题 37132680:Espresso 在执行下一个操作之前不会等待对话框创建完成
- 问题 37103280:Espresso 应附带 ProGuard 消费者规则,以便消费者无需添加这些规则
- 问题 37094726:Espresso Intents 包含不必要的应用程序标签
- 问题 37093953:Espresso:没有可用的空/空错误文本检查
- 问题 37071776:
espresso-core
嵌入 Guava 的.pom
文件 - 问题 37062612:
release()
中出现 NPE - 问题 37063389:将 Guava 和
espresso-web
作为androidTest
依赖项无法编译 - 问题 37070533:添加对 NavigationView 的支持,在 Android Design Support Library 中
- Runner
- 修复了将
@UiThreadTest
与@Test(timeout = 123)
结合使用的功能 - 修复了
-e notClass
运行程序参数 - 修复了
-e log
以支持 JUnit3 和 JUnit4 测试套件,以及Parameterized
和Enclosed
运行程序 - 问题 37663530:在每个测试方法之前和之后等待所有 Activity 完成
- 问题 37132680:Espresso 在执行下一个操作之前不会等待对话框创建完成
- 问题 37123213:
@RequiresDevice
在 x86_64 ABI 上被忽略 - 问题 37101485:
AndroidJUnitRunner
的一些清单提供的参数(如测试大小、注释和调试)被忽略 - 问题 37082857:Espresso 半并行测试执行在静态对象上失败
- 问题 37063396:Context 未使用
ProviderTestCase2
初始化(导致NullPointerException
)
- 修复了将
- 规则
- 修复了
ActivityTestRule
生命周期,以统一常规和延迟ActivityTestRule
初始化的行为 - 问题 37079943:修复
ServiceTestRule
以允许重新绑定 - 问题 37109342:添加
getActivityResult()
和ActivityResultMatchers
- 修复了
- UiAutomator
setUiAutomationFlags()
用于与UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES
一起使用 – 这允许在其他辅助功能服务运行时使用UiAutomator
- 问题 37082813:在空的
EditText
对象上使用setText()
会抛出NullPointerException
(如果 API 级别为 19 或更低)
其他值得注意的更改
- 二进制文件现在通过 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 年 2 月 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
现已退出测试版- 添加代码样式设置文件以统一代码格式
Espresso 2.2.1、Runner/Rules 0.4(2015 年 9 月 15 日)
新功能
- rules
- 添加了新的
IntentsTestRule
构造函数,使其与ActivityTestRule
完全兼容
- 添加了新的
- runner
- 为 API 级别 15 及更低版本添加了特殊情况的多 dex 安装
- 添加了对类和包的排除过滤器
- 运行除特定类中的所有测试:
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、测试运行器/规则 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,通过允许测试作者验证和存根传出的意图来实现隔离的交互测试
IntentsTestRule
:扩展ActivityTestRule
,在功能性 UI 测试中初始化和释放 Espresso-Intents
- espresso-core
ViewActions
:添加了在运行操作之前运行全局断言的功能。这对基于 Espresso 的其他框架很有用,用于在执行现有 Espresso 测试套件时验证视图层次结构的状态ViewMatchers.withContentDescription()
resId
重载
- rules
ActivityTestRule
:此规则提供对单个活动的函数测试UiThreadRule
和UiThreadTest
注解:此规则允许使用UiThreadTest
注解的测试方法在应用程序的主线程(或 UI 线程)上执行ServiceTestRule
:此规则提供对服务的函数测试
- runner
ApplicationLifecycleCallback
:用于监控应用程序生命周期事件的回调- 现在可以使用
<meta-data>
标记在 Android 清单文件中指定所有运行器参数
- UIAutomator
UiDevice.dumpWindowHierarchy()
现在可以接受File
或OutputStream
错误修复
- espresso
- 游标匹配器现在在列未找到时返回
false
,以便 Hamcrest 可以继续执行下一个游标 PreferenceMatchers
withTitle
不再出现NullPointerException
- 取消注册空闲资源不再导致 Espresso 认为我们有繁忙的空闲资源
- 更新了 Espresso Contrib 使用的 Support Annotations 版本
- 游标匹配器现在在列未找到时返回
- 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
中(它应该始终如此)
- 为了支持重新打包 guava 依赖项并避免 DEX 冲突(开发中的主要痛点),已从公共 API 中删除了可选(guava 依赖项)。受影响的方法包括以下方法
ViewAssertion.check()
HumanReadables.getViewHierarchyErrorMessage()
新功能
- 操作
ViewActions
replaceText()
openLink()
- 向上和向下滑动
- espresso-contrib
RecyclerViewActions
:处理与RecyclerViews
的交互PickerActions
:处理与Date
和Time
选择器的交互
- 匹配器
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()
覆盖失败处理程序onData()
支持由CursorAdapters
支持的AdapterViews
错误修复
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 但不是核心库一部分的功能
- 新的
DrawerActions
用于操作DrawerLayout
:它依赖于 Android 支持库,因此我们将它保留在核心 Espresso 库之外
示例测试
- 这些测试已重新定位到与测试应用程序相同的包中
- Maven POM 已修复以删除重复的 guava 依赖项,因此
mvn install
现在应该可以正常工作