# 基本知识和配置
正如前面所提到的,紧邻 **main***sourceSet* 的就是 **androidTest***sourceSet*,默认路径在 `src/androidTest/` 下。
在这个测试 *sourceSet* 中会构建一个使用 Android 测试框架,并且可以部署到设备上的测试 apk 来测试应用程序。这里面包含单元测试,集成测试,和后续 UI 自动化测试。
`<instrumentation>` 节点会包含在测试构建过程中自动生成的测试 AndroidManifest.xml,但是你也可以自己创建一个 `src/androidTest/AndroidManifest.xml` 文件并添加其他组件。
下面的值可以用来配置测试应用,相当于配置 `<instrumentation>` 节点:
- `testPackageName`
- `testInstrumentationRunner`
- `testHandleProfiling`
- `testfunctionalTest`
正如前面所看到的,这些配置在 **defaultConfig** 对象中配置:
~~~
android {
defaultConfig {
testPackageName "com.test.foo"
testInstrumentationRunner "android.test.InstrumentationTestRunner"
testHandleProfiling true
testFunctionalTest true
}
}
~~~
在测试应用程序的 manifest 文件中,`instrumentation` 节点的 `targetPackage` 属性值会自动使用测试应用的包名设置,即使这个名称是通过 **defaultConfig** 或者 *Build Type* 对象自定义的。这也是 manifest 文件需要自动生成的一个原因。
另外,这个测试 *sourceSet* 也可以拥有自己的依赖。
默认情况下,应用程序和他的依赖会自动添加到测试应用的 classpath 中,但是也可以通过以下来扩展:
~~~
dependencies {
androidTestCompile 'com.google.guava:guava:11.0.2'
}
~~~
**assembleTest** 不依赖于主要的 **assemble** task,所以要手动运行测试。当测试运行时,**assembleTest** task 会自动运行,并生成测试应用。
目前只有一个 *Build Type* 会被测试。默认情况下是 **debug***Build Type*,可以通过以下代码进行自定义配置:
~~~
android {
...
testBuildType "staging"
}
~~~
- 译者序
- 简介
- 新构建系统的目标
- 为什么使用 Gradle?
- 配置要求
- 基础项目
- 构建文件示例
- 项目结构
- 配置项目结构
- 构建任务
- 通用任务
- Java 项目的 Task
- Android Tasks
- 基本的构建定制
- Manifest 属性
- 构建类型
- 签名配置
- 运行 ProGuard
- 清理资源
- 依赖、Library 和多项目
- 包依赖
- 本地包依赖
- 远程包依赖
- 多项目设置
- Library 项目
- 创建 Library 项目
- 普通项目和 Library 项目的区别
- 引用 Library 项目
- Library 项目发布
- 测试
- 单元测试
- 基本知识和配置
- 运行测试
- 测试 Android Library 项目
- 测试报告
- 独立项目
- 多项目报告
- Lint 支持
- 构建 Variants(变种)版本
- 产品定制
- 构建类型+产品定制=构建变种版本
- 产品定制的配置
- 源组件和依赖
- 构建和任务
- 测试
- 多定制的变种版本
- 高级构建的自定义
- 构建选项
- Java 编译选项
- aapt 选项
- dex 选项
- 操作 task
- 构建类型和产物定制的属性引用
- 使用sourceCompatibility 1.7
- 附录
- ApplicationId 与 packageName