# 基本知識和配置
正如前面所提到的,緊鄰 **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