测试
测试 multi-flavors 项目与测试普通的项目相差无几。
androidTest 的 sourceSet 用于定义所有 flavor 共用的测试,但是每一个 flavor 也可以有它特有的测试。
正如前面提到的,每一个 flavor 都会创建自己的测试 sourceSet:
- android.sourceSets.androidTestFlavor1
位于src/androidTestFlavor1/
- android.sourceSets.androidTestFlavor2
位于src/androidTestFlavor2/
同样的,它们也可以拥有自己的依赖关系:
dependencies {
androidTestFlavor1Compile "..."
}
这些测试可以通过 deviceCheck task 或者 androidTest task(当 flavor 被使用的时候这个 task 相当于一个标志性 task)来执行。
每个 flavor 也拥有自己的 task 来执行测试:androidTest<VariantName>
。例如:
- androidTestFlavor1Debug
- androidTestFlavor2Debug
同样的,每个 variant 版本也会创建对应的测试 APK 构建 task 和 安装或卸载 task:
- installFlavor1Debug
- assembleFlavor1Test
- installFlavor1Test
- uninstallFlavor1Debug
- …
最终的 HTML 报告根据每个 flavor 的报告汇总而成。
下面是测试结果和报告文件的路径,每组第一个是每个 flavor 版本的结果,第二个是汇总结果:
build/androidTest-results/flavors/<FlavorName>
build/androidTest-results/all/
build/reports/androidTests/flavors<FlavorName>
build/reports/androidTests/all/
改变 report 或 results 的输出文件夹都只会改变对应的根目录,构建时仍会创建每个 flavor 的文件夹,并且仍会汇总测试结果以及报告文件。