本指南介绍了如何使用 SDK 管理器安装 Espresso 以及如何使用 Gradle 构建它。建议使用 Android Studio。
设置测试环境
为了避免不稳定性,我们强烈建议您关闭用于测试的虚拟或物理设备上的系统动画。在您的设备上,在设置 > 开发者选项下,禁用以下 3 个设置
- 窗口动画缩放
- 过渡动画缩放
- 动画时长缩放
添加 Espresso 依赖项
要将 Espresso 依赖项添加到您的项目中,请完成以下步骤
- 打开您的应用的
build.gradle
文件。这通常不是顶级build.gradle
文件,而是app/build.gradle
。 - 在依赖项内部添加以下行
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')
设置检测运行器
在 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 中创建测试配置,请完成以下步骤
- 打开运行 > 编辑配置。
- 添加新的 Android 测试配置。
- 选择一个模块。
- 添加特定的检测运行器:
androidx.test.runner.AndroidJUnitRunner
- 运行新创建的配置。
从命令行
执行以下 Gradle 命令
./gradlew connectedAndroidTest