运行主要和特定风味android的单元测试

时间:2017-03-21 09:08:44

标签: java android unit-testing android-gradle android-sourcesets

我有5个Flavors映射到2个源文件夹,其中一些公共代码写在主文件夹中,b文件夹有一些额外的bean,我已经编写了单元测试,现在我想运行单元测试,就像在main中的所有单元测试一样文件夹运行时为B app编写了一些特定的单元测试。

1.我应该在哪里放置B app的文件夹特定单元测试。我已经修改了文件夹测试并将这些测试放在该文件夹中并添加

unitTest { java.srcDir file('src/b/test') }

在B应用程序的源集中但不是这个不起作用 2.我应该如何为单元测试放置映射,这些不是android测试,我已经累了thisthis但这些似乎是针对Android测试而不是单元测试。

productFlavors {
        staging {
            applicationIdSuffix = ".test"
            resValue "string", "app_name", "A Test"
            //other keys
        }
        prod {
            resValue "string", "app_name", "A"
            //other keys
        }
        dev {
            applicationIdSuffix = ".dev"
            resValue "string", "app_name", "A Dev"
            //other keys
        }

        BStaging {
            applicationIdSuffix = ".b.test"
            resValue "string", "app_name", "B Test"
         //other keys
        }

        BProd {
            applicationIdSuffix = ".b"
            resValue "string", "app_name", "B"
      //other keys
        }
    }

sourceSets {
        prod {
            java.srcDirs = ['src/a/java']
            res.srcDirs = ['src/a/res']
            resources.srcDirs = ['src/a/java']
            manifest.srcFile 'src/a/AndroidManifest.xml'
        }
        dev {
            java.srcDirs = ['src/a/java']
            res.srcDirs = ['src/a/res']
            resources.srcDirs = ['src/a/java']
            manifest.srcFile 'src/a/AndroidManifest.xml'
        }
        staging {
            java.srcDirs = ['src/a/java']
            res.srcDirs = ['src/a/res']
            resources.srcDirs = ['src/a/java']
            manifest.srcFile 'src/a/AndroidManifest.xml'
        }
        BStaging {
            java.srcDirs = ['src/b/java']
            res.srcDirs = ['src/b/res']
            resources.srcDirs = ['src/b/java']
            manifest.srcFile 'src/b/AndroidManifest.xml'
        }
        BProd {
            java.srcDirs = ['src/b/java']
            res.srcDirs = ['src/b/res']
            resources.srcDirs = ['src/b/java']
            manifest.srcFile 'src/b/AndroidManifest.xml'

        }
    }

1 个答案:

答案 0 :(得分:0)

如果你有产品风味构建类型这样创建。

buildTypes {
        release {
            ...
        }

        debug {
            debuggable true
        }
    }

    productFlavors {
        develop {

        }

        production {

        }
    }

您可以在工作室终端中使用此命令运行基于flavor的测试。

  • 对于开发风格和调试版本: ./ gradlew testDevelopDebugUnitTest
  • 开发风格和发布版本: ./ gradlew testDevelopReleaseUnitTest

所以模式就像测试< 风味>< BuildType > UnitTest