Espresso 设置说明

本指南介绍了如何使用 SDK 管理器安装 Espresso 以及如何使用 Gradle 构建它。建议使用 Android Studio。

设置测试环境

为了避免不稳定性,我们强烈建议您关闭用于测试的虚拟或物理设备上的系统动画。在您的设备上,在设置 > 开发者选项下,禁用以下 3 个设置

  • 窗口动画缩放
  • 过渡动画缩放
  • 动画时长缩放

添加 Espresso 依赖项

要将 Espresso 依赖项添加到您的项目中,请完成以下步骤

  1. 打开您的应用的 build.gradle 文件。这通常不是顶级 build.gradle 文件,而是 app/build.gradle
  2. 在依赖项内部添加以下行

Groovy

androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
androidTestImplementation 'androidx.test:runner:1.6.1'
androidTestImplementation 'androidx.test:rules:1.6.1'

Kotlin

androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1')
androidTestImplementation('androidx.test:runner:1.6.1')
androidTestImplementation('androidx.test:rules:1.6.1')

查看完整的 Gradle 依赖项集.

设置检测运行器

android.defaultConfig 中,将以下行添加到相同的 build.gradle 文件中

Groovy

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

Kotlin

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

Gradle 构建文件示例

Groovy

plugins {
  id 'com.android.application'
}

android {
    compileSdkVersion 33

    defaultConfig {
        applicationId "com.my.awesome.app"
        minSdkVersion 21
        targetSdkVersion 33
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    androidTestImplementation 'androidx.test:runner:1.6.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
}

Kotlin

plugins {
    id("com.android.application")
}

android {
    compileSdkVersion(33)

    defaultConfig {
        applicationId = "com.my.awesome.app"
        minSdkVersion(21)
        targetSdkVersion(33)
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    androidTestImplementation('androidx.test:runner:1.6.1')
    androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1')
}

分析

为了确保我们在每次新版本发布时都走在正确的轨道上,测试运行器会收集分析数据。更具体地说,它会为每次调用上传正在测试的应用程序的包名称的哈希值。这使我们能够衡量使用 Espresso 的唯一包的数量以及使用量。

如果您不希望上传此数据,您可以选择退出,方法是在您的检测命令中包含 disableAnalytics 参数

adb shell am instrument -e disableAnalytics true

添加第一个测试

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

使用规则的 JUnit4 测试示例

Kotlin

@RunWith(AndroidJUnit4::class)
@LargeTest
class HelloWorldEspressoTest {

    @get:Rule
    val activityRule = ActivityScenarioRule(MainActivity::class.java)

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

Java

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

    @Rule
    public ActivityScenarioRule<MainActivity> activityRule =
            new ActivityScenarioRule<>(MainActivity.class);

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

运行测试

您可以在 Android Studio 中或从命令行运行测试。

在 Android Studio 中

要在 Android Studio 中创建测试配置,请完成以下步骤

  1. 打开运行 > 编辑配置
  2. 添加新的 Android 测试配置。
  3. 选择一个模块。
  4. 添加特定的检测运行器:androidx.test.runner.AndroidJUnitRunner
  5. 运行新创建的配置。

从命令行

执行以下 Gradle 命令

./gradlew connectedAndroidTest