[Espresso 4 Android Doc] 2. Espresso 设置说明

声明:本系列文章是对 Android Testing Support Library官方文档的翻译,水平有限,欢迎批评指正。

1. Espresso 概览
2. Espresso 设置说明
3. Espresso 基础
4. Espresso 备忘录
5. Espresso 意图
6. Espresso 高级示例
7. Espresso Web
8. AndroidJUnitRunner
9. ATSL 中的 JUnit4 规则
10. UI Automator
11. 可访问性检查

本指南涵盖了使用 SDK Manager 安装 Espresso 和使用 Gradle 构建 Espresso 测试两部分内容。推荐使用 Android Studio。

配置测试环境

为了避免花屏,我们强烈建议在虚拟机或真实设备上测试时关闭系统动画。

  • 在设备上的设置->开发者选项中禁用一下三项设置:

窗口动画缩放
过渡动画缩放
动画程序时长缩放

下载 Espresso

  • 确保你已经安装了最新的 Extras 下的 Android Support Repository (查看使用说明)
  • 打开应用的 build.gradle 文件。这通常不是顶级 build.gradle,而是 app/build.gradle
  • 在 dependencies 节点下添加以下行:
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test:runner:0.5'
  • 参考下载小节查看更多的工件(espresso-contrib, espresso-web 等)

设置 instrumentation runner

  • ​android.defaultConfig​ 下添加下面的代码:
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

build.gradle 示例文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22"

    defaultConfig {
        applicationId "com.my.awesome.app"
        minSdkVersion 10
        targetSdkVersion 22.0.1
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    // App's dependencies, including test
    compile 'com.android.support:support-annotations:22.2.0'

    // Testing-only dependencies
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
}

分析数据

为了确保每一个新发布的版本正常工作,test runner 会收集分析数据。具体而言,每次调用它都会上传待测应用包名的一个 hash 值。这可以使我们在 Espresso 特性包的数量以及它的体积之间做出权衡。

如果你不希望上传此类数据,可以通过给 test runner 传入 ​disableAnalytics “true”​ 来禁止(参考 如何传入自定义参数)

添加第一个测试

Android Studio 默认在 ​src/androidTest/java/com.example.package/​ 中创建测试。

使用 Rules 创建的 JUnit4 测试实例:

@RunWith(AndroidJUnit4.class)
@LargeTest
public class HelloWorldEspressoTest {

    @Rule
    public ActivityTestRule mActivityRule = new ActivityTestRule(MainActivity.class);

    @Test
    public void listGoesOverTheFold() {
        onView(withText("Hello world!")).check(matches(isDisplayed()));
    }
}

执行测试

使用 Android Studio 执行

创建测试配置

在 Android Studio中:

  • 打开菜单 Run -> Edit Configurations
  • 添加一个新的 Android Tests 配置
  • 选择 module
  • 添加一个指定的 instrumentation runner:
android.support.test.runner.AndroidJUnitRunner

执行这个新创建的配置

在命令行中通过 Gradle 执行

执行 ​./gradlew connectedAndroidTest

你可能感兴趣的:([Espresso 4 Android Doc] 2. Espresso 设置说明)