Espresso 测试框架 - 设置指南



在本章中,让我们了解如何安装 Espresso 框架,配置它以编写 Espresso 测试并在我们的 Android 应用程序中执行它。

前提条件

Espresso 是一个用于测试使用 Android SDK 以 Java/Kotlin 语言开发的 Android 应用程序的用户界面测试框架。因此,Espresso 的唯一要求是使用 Java 或 Kotlin 中的 Android SDK 开发应用程序,建议使用最新的 Android Studio。

在我们开始使用 Espresso 框架之前,需要正确配置以下项目:

  • 安装最新的 Java JDK 并配置 JAVA_HOME 环境变量。

  • 安装最新的 Android Studio(3.2 或更高版本)。

  • 使用 SDK Manager 安装最新的 Android SDK 并配置 ANDROID_HOME 环境变量。

  • 安装最新的 Gradle 构建工具并配置 GRADLE_HOME 环境变量。

配置 Espresso 测试框架

最初,Espresso 测试框架作为 Android Support 库的一部分提供。后来,Android 团队提供了一个新的 Android 库 AndroidX,并将最新的 Espresso 测试框架开发迁移到该库中。最新的 Espresso 测试框架开发(Android 9.0,API 级别 28 或更高版本)将在 AndroidX 库中进行。

在项目中包含 Espresso 测试框架就像在应用程序 gradle 文件 app/build.gradle 中将 Espresso 测试框架设置为依赖项一样简单,完整的配置如下:

使用 Android Support 库:

android {
   defaultConfig {
      testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
   }
}
dependencies {
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.android.support.test:runner:1.0.2'
   androidTestImplementation 'com.android.support.test.espresso:espressocore:3.0.2'
}

使用 AndroidX 库:

android {
   defaultConfig {
      testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
   }
}
dependencies {
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.androidx.test:runner:1.0.2'
   androidTestImplementation 'com.androidx.espresso:espresso-core:3.0.2'
}

android/defaultConfig 中的 testInstrumentationRunner 设置 AndroidJUnitRunner 类来运行 Instrumentation 测试。dependencies 中的第一行包含 JUnit 测试框架,第二行包含运行测试用例的测试运行器库,最后第三行包含 Espresso 测试框架。

默认情况下,Android Studio 在创建 Android 项目时将 Espresso 测试框架(Android Support 库)设置为依赖项,Gradle 将从 Maven 仓库下载必要的库。让我们创建一个简单的 Hello World Android 应用程序,并检查 Espresso 测试框架是否已正确配置。

创建新的 Android 应用程序的步骤如下:

  • 启动 Android Studio。

  • 选择 文件 → 新建 → 新建项目。

  • 输入 应用程序名称 (HelloWorldApp) 和公司域名 (espressosamples.tutorialspoint.com),然后单击 下一步

Android Application

创建 Android 项目:

  • 选择最低 API 为 API 15:Android 4.0.3 (IceCreamSandwich),然后单击下一步。

Target Android Devices

选择目标 Android 设备:

  • 选择 空 Activity,然后单击 下一步

Empty Activity

向手机添加 Activity:

  • 输入主 Activity 的名称,然后单击 完成

Main Activity

配置 Activity:

  • 创建新项目后,打开 app/build.gradle 文件并检查其内容。文件内容如下所示:

apply plugin: 'com.android.application'
android {
   compileSdkVersion 28
   defaultConfig {
      applicationId "com.tutorialspoint.espressosamples.helloworldapp"
      minSdkVersion 15
      targetSdkVersion 28
      versionCode 1
      versionName "1.0"
      testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
   }
   buildTypes {
      release {
         minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android.txt'),    'proguard-rules.pro'
      }
   }
}
dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'com.android.support:appcompat-v7:28.0.0'
   implementation 'com.android.support.constraint:constraint-layout:1.1.3'
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.android.support.test:runner:1.0.2'
   androidTestImplementation 'com.android.support.test.espresso:espressocore:3.0.2'
}

最后一行指定了 Espresso 测试框架依赖项。默认情况下,配置了 Android Support 库。我们可以通过单击菜单中的 重构迁移到 AndroidX 来重新配置应用程序以使用 AndroidX 库。

Espresso Testing Framework

迁移到 AndroidX:

  • 现在,app/build.gradle 更改如下所示:

apply plugin: 'com.android.application'
android {
   compileSdkVersion 28
   defaultConfig {
      applicationId "com.tutorialspoint.espressosamples.helloworldapp"
      minSdkVersion 15
      targetSdkVersion 28
      versionCode 1
      versionName "1.0"
      testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
   }
   buildTypes {
      release {
         minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }
   }
}
dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
   implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'androidx.test:runner:1.1.1'
   androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

现在,最后一行包含来自 AndroidX 库的 Espresso 测试框架。

设备设置

在测试期间,建议关闭 Android 设备上的动画,该动画用于测试。这将减少检查空闲资源时的混淆。

让我们看看如何在 Android 设备上禁用动画 – (设置 → 开发者选项),

  • 窗口动画缩放比例

  • 过渡动画缩放比例

  • 动画时长缩放比例

如果 设置 屏幕中没有 开发者选项 菜单,则多次点击 关于手机 选项中的 版本号。这将启用 开发者选项 菜单。

广告