使用带有espresso / androidTest的proguard

时间:2016-06-07 08:31:55

标签: android proguard android-espresso

我正在尝试配置proguard以将其与我的espresso UI测试风格一起使用。事情是Proguard倾向于忽略我的调试proguard配置。

这是配置的外观:

buildTypes {
    debug {
        minifyEnabled true
        proguardFiles 'proguard-debug.pro'
        testProguardFile 'proguard-debug.pro'
        signingConfig signingConfigs.release
    }
}

我添加了testProguardFile,但它似乎不适用于androidTest。我正在运行mockDebug味道变体。当我刚运行应用程序时,它运行正常,但是当我尝试运行位于adnroidTest的测试时,由于proguard警告,它将无法运行,就像proguard文件根本没有被处理而且文件是很直接:

proguard-debug.pro

-dontobfuscate
-dontoptimize
-dontwarn

在有人开始建议我为调试版本关闭proguard之前:我需要启用它,因为multidex。

2 个答案:

答案 0 :(得分:11)

如果您希望您的测试版本尽可能接近真实交易,请尝试以下方法:

# build.gradle
debug {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    testProguardFile 'proguard-test.pro'
}

# proguard-test.pro:
-include proguard-rules.pro
-keepattributes SourceFile,LineNumberTable

另一方面,如果你只需要因为multidex,if your are using minSdkVersion < 21, ProGuard is tied to multidex flag and run automatically

答案 1 :(得分:3)

您还需要添加默认的proguard规则:

proguardFiles getDefaultProguardFile('proguard-android.txt')

此行可以删除,因为它是重复的:

testProguardFile 'proguard-debug.pro'