【问题标题】:Run unit test for main and specific flavours android为主要和特定风味android运行单元测试
【发布时间】:2017-03-21 09:08:43
【问题描述】:

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

1.我应该在哪里放置 B 应用程序的文件夹特定单元测试。我已经创建了一个文件夹 test 并将这些测试放在该文件夹中并添加

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'

        }
    }

【问题讨论】:

  • 嘿,伙计,我没有使用源集,但我能够使用此命令模式运行基于风味的测试。 (不带引号)“./gradlew testUnitTest”.

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


【解决方案1】:

如果您的产品风格构建类型是这样创建的。

buildTypes {
        release {
            ...
        }

        debug {
            debuggable true
        }
    }

    productFlavors {
        develop {

        }

        production {

        }
    }

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

  • 对于 develop 风格和 debug 构建:./gradlew testDevelopDebugUnitTest
  • 对于 develop 风格和 release 构建:./gradlew testDevelopReleaseUnitTest


所以模式就像 testFlavour>BuildType>UnitTest

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-13
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    相关资源
    最近更新 更多