如何在生成签名apk之前运行测试?

时间:2016-07-04 03:22:06

标签: android-studio gradle android-gradle android-testing

我认为Android Studio会在生成签名apk之前运行测试。

但AS并没有为我做到这一点。在打包我的apk之前并不好,我需要自己运行测试。

我不确定依赖或其他方式是否可以帮助我。我不确定天气我的build.gradle有错误。

gradle中的一些相关代码可能是这样的:

defaultConfig {
    applicationId "com.xx.xx"
    versionCode getDefaultVersionCode()
    minSdkVersion 19
    targetSdkVersion 19
}
dependencies {
    testCompile 'org.robolectric:robolectric:3.0'
    testCompile 'junit:junit:4.12'
}

我没有写 testOption

我的目录是这样的(前面的内容是包名):

enter image description here

2 个答案:

答案 0 :(得分:6)

要运行所有可用的测试,在构建版本时,使构建版本的任务(例如assembleRelease)取决于测试任务:

android {
    // ...
}
afterEvaluate {
    assembleRelease.dependsOn testReleaseUnitTest, connectedAndroidTest
}

afterEvaluate闭包在评估后执行(当创建android任务时)。此时,android任务可以作为变量引用。

您可以使用testReleaseUnitTest代替testrelease运行所有变体的单元测试。

请注意,默认情况下,您的应用的assembleRelease版本没有任何检测测试(使用connectedAndroidTest构建)。因此,在上面的示例中,debug仅运行name版本的检测测试。

答案 1 :(得分:2)

我不熟悉Android开发,但我认为您可以通过在build.gradle中的某处添加它来实现您的意图:

sign.dependsOn test

其中 sign 是apk任务的签名(与 gradle tasks 同名)。