6.6 测试

测试多 flavor 工程和测试普通的工程差不多。

androidTest sourceset 对所有的 flavor 来说是通用的测试,而每个 flavor 也可以有他们自己的测试。

正如前面所提到的,每一个 flavor 都可以创建自己的测试 sourceSets

  • android.sourceSets.androidTestFlavor1 ,位置是src/androidTestFlavor1/
  • android.sourceSets.androidTestFlavor2 ,位置是src/androidTestFlavor2/

同样的,他们也可以有他们自己的依赖:

  1. dependencies {
  2. androidTestFlavor1Compile "..."
  3. }

运行测试可以通过主的 deviceCheck 引导任务,当使用 flavor 的时候,也可以通过主的 androidTest 引导任务来执行。

每一个flavor都有他们自己运行测试的任务:androidTest\。例如:

  • androidTestFlavor1Debug
  • androidTestFlavor2Debug

同样的,每一个 variant 也都有测试APK任务、安装以及卸载任务:

  • assembleFlavor1Test
  • installFlavor1Debug
  • installFlavor1Test
  • uninstallFlavor1Debug

最终的HTML报告会根据 flavor 合并生成。

测试结果以及报告的位置如下,第一个是每个 flavor 的结果,然后是合并起来的:

  • build/androidTest-results/flavors/\
  • build/androidTest-results/all/
  • build/reports/androidTests/flavors\
  • build/reports/androidTests/all/

自定义路径的话,也只是改变根目录,仍然会创建每个 flavor 的子文件夹并且合并测试结果以及报告。