在Android Studio中测试不同风格的包

时间:2014-03-13 09:03:28

标签: android gradle android-studio android-gradle android-productflavors

我正在androidstudio中的应用程序上尝试各种口味。我必须为这些口味编写不同的测试类,因为我有不同的类文件。但我想知道是否有任何选项可以为build.gradle中的每个flavor指定测试包。这是我的build.gradle供参考。我使用0.4.6版本的AndroidStudio。

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

defaultConfig {
    minSdkVersion 8
    targetSdkVersion 19
    testPackageName "com.example.tests"
}

productFlavors {

    Paid {

        packageName "com.example.paid"

    }
    Free {

        packageName "com.example.free"
    }
}

sourceSets {
    main {
        java.srcDirs = ['src/main/java']
        res.srcDirs = ['src/main/res']
    }

    Paid {
        java.srcDirs = ['src/Paid/java']
        res.srcDirs = ['src/Paid/res']
    }

    Free {
        java.srcDirs = ['src/Free/java']
        res.srcDirs = ['src/Free/res']
    }
}

signingConfigs {

    releaseConfig {

        storeFile file('filename');
        storePassword('filepwd');
        keyAlias "aliasname";
        keyPassword "aliaspassword";
    }

}

buildTypes {

    release {

        runProguard true
        debuggable false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        signingConfig signingConfigs.releaseConfig
        packageNameSuffix ".release"

    }

    debug {

        runProguard false
        debuggable true
        packageNameSuffix ".debug"

    }       
 }
}

dependencies {

    compile project(':androidViewPagerIndicator_library')
    compile 'com.android.support:appcompat-v7:+'

}

2 个答案:

答案 0 :(得分:29)

来自documentation

  

测试多种口味项目与更简单的项目非常相似。

     

androidTest源代码集用于所有风格的常见测试,   虽然每种口味也可以有自己的测试。

     

如上所述,创建了测试每种风味的sourceSets:

     
      
  • android.sourceSets.androidTestFlavor1
  •   
  • android.sourceSets.androidTestFlavor2
  •   

所以,就像你现在应该拥有的那样“免费”#39;并且'付费'具有特定于每种风味的代码的文件夹,您可以添加' androidTestFree'和' androidTestPaid'您可以在其中添加特定于每种口味的测试用例的文件夹。

答案 1 :(得分:1)

这就是为我做的事情:How to specify unit test folder in two-dimension flavor

dependencies {
  androidTestFlavor1Compile "..."

  //In your case androidTestStbAppleCompile         
}