如何指定二维风格的单元测试文件夹

Hsi*_*ing 4 android unit-testing gradle android-gradle-plugin

我有一个具有二维风味的项目。例如,flavorDimensions“设备”、“水果”

  1. 移动香蕉
  2. 移动苹果
  3. stb香蕉
  4. stbApple

所有构建结果都很好,我想在 Android Studio 中选择Build Variant时只为stbApple 进行单元测试。如何实现这一目标?

我试过下面的实验,但仍然失败。

1.Set sourceSets(失败,其他构建变体仍运行此文件夹)

sourceSets {
        mobile {
            assets.srcDirs = ['src/mobile/assets']
        }

        stbApple {
            androidTest {
                // Other build variant still run unit test in this folder.......
                java.srcDirs += ['src/androidTestStbApple/java']
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

2.在src文件夹中给出androidTestStbApple文件夹,正如doc所说,我们不会在Gradle中给出指定的文件夹,它可以通过文件夹区分构建变体。结果也失败了。

现在 gradle / android studio 似乎不支持二维风格进行单元测试。(一维可以成功)

Gab*_*tti 6

您可以通过这种方式为 multi-flavors 项目定义单元测试:

 dependencies {
    androidTestFlavor1Compile "..."

    //In your case androidTestStbAppleCompile         
}
Run Code Online (Sandbox Code Playgroud)

您可以将此文件夹用作 sourceSet:

 src/androidTestStbApple/
Run Code Online (Sandbox Code Playgroud)

通过这种方式,每种口味都有自己的任务来运行测试。在你的情况下

./gradlew connectedAndroidTestStbAppleDebug
Run Code Online (Sandbox Code Playgroud)