Android Studio中用于不同版本测试的软件包

23

我正在Android Studio上的一个应用程序中尝试不同的口味。由于不同口味有不同的类文件,因此我必须编写不同的测试类来针对各个口味进行测试。但我想知道是否有选项可以在build.gradle中为每个口味指定测试包。下面是我的build.gradle供参考。我使用的是Android Studio的0.4.6版本。

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:+'

}

我在这里添加了一个基本设置的例子 here - sirFunkenstine
2个回答

39
文档中得知:

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

androidTest源集用于所有口味的通用测试, 而每个口味也可以有自己的测试。

如上所述,创建了每个口味的sourceSets进行测试:

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

因此,就像您现在应该有“免费”和“付费”文件夹来存放每个口味特定的代码一样, 您可以添加“androidTestFree”和“androidTestPaid”文件夹, 在其中添加特定于每种口味的测试案例。


2
我尝试将androidTestFree和androidTestPaid文件夹添加到src文件夹中,就像我有InstrumentTest文件夹一样。但是当我选择flavors并运行类时,这些类无法被检测到,而且我会收到空测试套件警告。 - user1994183
你正在使用哪个版本的构建工具?在0.9版本中,instrumentTest文件夹被重命名为androidTest,但如果你使用的是早期版本,你将不得不相应地命名“flavor”测试文件夹。在你的情况下,那将是instrumentTestFree和instrumentTestPaid。 - ivagarz
谢谢ivagarz。我使用的是0.8版本,更改文件夹名称解决了问题。 - user1994183
1
@ivagarz buildtools 'com.android.tools.build:gradle:0.13.+'。我从Android Studio执行测试(我为模块MyApplication添加了Android Tests配置)。我将文件夹从androidTest重命名为androidTestFlavor1,只有java文件夹是绿色的,第二个文件夹androidTestFlavor1/java像往常一样是橙色的。 - jakub
非常有帮助!我曾经为此苦苦挣扎,试图使用Gradle测试任务。这是我找到的唯一方法,而不使用特殊插件来分离测试。 - Billy Lazzaro
显示剩余2条评论

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接