web-dev-qa-db-ja.com

Android Studioでさまざまなフレーバーのパッケージをテストする

私はandroidstudioのアプリケーションでフレーバーを実験しています。フレーバーのクラスファイルが異なるため、フレーバーのさまざまなテストクラスを作成する必要があります。しかし、build.gradleで各フレーバーのテストパッケージを指定するオプションがあるかどうか疑問に思います。これが参考のために私のbuild.gradleです。 AndroidStudioの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:+'

}
16
user1994183

ドキュメント から

マルチフレーバープロジェクトのテストは、単純なプロジェクトと非常によく似ています。

AndroidTestソースセットは、すべてのフレーバーにわたる共通のテストに使用されますが、各フレーバーは独自のテストを持つこともできます。

上記のように、各フレーバーをテストするためのsourceSetが作成されます。

  • Android.sourceSets.androidTestFlavor1
  • Android.sourceSets.androidTestFlavor2

したがって、各フレーバーに固有のコードを含む「無料」および「有料」フォルダーがあるはずのように、「androidTestFree」および「androidTestPaid」フォルダーを追加して、各フレーバーに固有のテストケースを追加できます。

33
ivagarz

これは本当に私のためにそれをしたことです: 2次元フレーバーでユニットテストフォルダーを指定する方法

dependencies {
  androidTestFlavor1Compile "..."

  //In your case androidTestStbAppleCompile         
}
3
FloG