Android 测试示例项目教程
项目的目录结构及介绍
Android 测试示例项目(android/testing-samples)是一个包含多种测试框架和技术的示例集合。项目的目录结构如下:
android/testing-samples/
├── README.md
├── CONTRIBUTING.md
├── LICENSE
├── WORKSPACE
├── common_defs.bzl
├── projects.conf
├── test_all.sh
├── update_versions.sh
├── bazelci
├── integration
├── ui
│ ├── espresso
│ │ ├── BasicSample
│ │ ├── CustomMatcherSample
│ │ ├── DataAdapterSample
│ │ ├── FragmentScenarioSample
│ │ ├── IdlingResourceSample
│ │ ├── IntentsBasicSample
│ │ ├── IntentsAdvancedSample
│ │ ├── MultiWindowSample
│ │ ├── RecyclerViewSample
│ │ ├── ScreenshotSample
│ │ └── WebBasicSample
│ └── uiautomator
│ └── BasicSample
└── ...
README.md
: 项目介绍和使用说明。CONTRIBUTING.md
: 贡献指南。LICENSE
: 项目许可证。WORKSPACE
: Bazel 工作区文件。common_defs.bzl
: 公共定义文件。projects.conf
: 项目配置文件。test_all.sh
: 测试脚本。update_versions.sh
: 更新版本脚本。bazelci
: Bazel CI 相关文件。integration
: 集成测试相关示例。ui
: UI 测试相关示例,包括 Espresso 和 UI Automator。
项目的启动文件介绍
项目的启动文件主要是 README.md
,它包含了项目的介绍、使用说明和构建指南。以下是 README.md
的部分内容:
# Android 测试示例
这是一个包含多种测试框架和技术的示例集合。示例包括:
- Espresso 示例
- UI Automator 示例
- JUnit4 规则示例
- 服务测试规则示例
## 前提条件
- Android SDK v28
- Android Build Tools v28.0.3
## 开始使用
这些示例使用 Gradle 构建系统。要构建一个项目,请进入项目目录并使用以下命令:
```sh
./gradlew assemble
./gradlew connectedAndroidTest
./gradlew test
## 项目的配置文件介绍
项目的配置文件主要包括 `WORKSPACE` 和 `build.gradle` 文件。
### WORKSPACE
`WORKSPACE` 文件是 Bazel 工作区文件,定义了项目的外部依赖和构建环境。以下是 `WORKSPACE` 文件的部分内容:
```python
workspace(name = "android_testing_samples")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_android",
urls = ["https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"],
sha256 = "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
strip_prefix = "rules_android-0.1.1",
)
build.gradle
build.gradle
文件是 Gradle 构建文件,定义了项目的依赖和构建任务。以下是 build.gradle
文件的部分内容:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.android.testing.espresso.BasicSample"
minSdkVersion 14
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}