Android Studio 中不同风格的测试包

Posted

技术标签:

【中文标题】Android Studio 中不同风格的测试包【英文标题】:Test package for different flavors in Android Studio 【发布时间】:2014-04-17 21:27:28 【问题描述】:

我正在 androidstudio 中的应用程序上试验风味。我必须为风味编写不同的测试类,因为我有不同的风味类文件。但我想知道是否有任何选项可以为 build.gradle 中的每种风味指定测试包。这是我的 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:+'


【问题讨论】:

我添加了一个基本设置示例here 【参考方案1】:

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

dependencies 
  androidTestFlavor1Compile "..."

  //In your case androidTestStbAppleCompile         

【讨论】:

【参考方案2】:

来自documentation

测试多风格项目与更简单的项目非常相似。

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

如上所述,创建了用于测试每种风味的源集:

android.sourceSets.androidTestFlavor1 android.sourceSets.androidTestFlavor2

因此,正如您现在应该拥有包含每种口味的特定代码的“免费”和“付费”文件夹一样,您可以添加“androidTestFree”和“androidTestPaid”文件夹,您可以在其中添加特定于您的每一个的测试用例口味。

【讨论】:

我尝试在 src 文件夹中添加 androidTestFree 和 androidTestPaid 文件夹,就像我拥有 InstrumentTest 文件夹一样。但是当我选择风格时没有检测到这些类,当我运行类时,我收到 Empty Test Suite 警告。 您使用的是哪个版本的构建工具?在 0.9 版中,instrumentTest 文件夹已重命名为 androidTest,但如果您使用的是以前的版本,则必须相应地命名“风味”测试文件夹。在您的情况下,这将是 instrumentTestFree 和 instrumentTestPaid。 谢谢 ivagarz。我使用的是 0.8 版,更改文件夹名称解决了这个问题。 我使用 gradle 2.1,我使用默认 sourceSets,我的测试在 MyApplication/src/adroidTestFlavor1 和 MyApplication/src/adroidTestFlavor2 中。它不起作用。我做错了什么? @ivagarz buildtools 'com.android.tools.build:gradle:0.13.+'。我从 Android Studio 执行测试(我为模块 MyApplication 添加了 Android 测试配置)。我从 androidTest 重命名为 androidTestFlavor1 的文件夹中只有 java 文件夹是绿色的,第二个文件夹 androidTestFlavor1/java 像往常一样是橙色的。

以上是关于Android Studio 中不同风格的测试包的主要内容,如果未能解决你的问题,请参考以下文章

无法在 android (Android studio) 中测试受保护的方法

Android-Studio(或一般的 IDEA)重构多个源集

android stdio怎么导入java包

如何在 Android Studio 中使用具有不同应用名称的风味?

请教如何使用android studio同时打包多个apk

Android Studio:无法访问包管理器。系统在运行吗?