使用带有espresso/androidTest的proguard

Jac*_*ień 9 android proguard android-espresso

我正在尝试配置proguard以使用我的espresso UI测试风味.事情是Proguard倾向于忽略我的调试proguard配置.

这是配置的外观:

buildTypes {
    debug {
        minifyEnabled true
        proguardFiles 'proguard-debug.pro'
        testProguardFile 'proguard-debug.pro'
        signingConfig signingConfigs.release
    }
}
Run Code Online (Sandbox Code Playgroud)

我补充说testProguardFile但它似乎没有起作用androidTest.我正在运行mockDebug风味变种.当我刚运行应用程序时,它工作正常,但是当我尝试运行测试时,adnroidTest由于proguard警告,它将无法运行,就像proguard文件根本没有被处理而且文件很简单:

proguard-debug.pro

-dontobfuscate
-dontoptimize
-dontwarn
Run Code Online (Sandbox Code Playgroud)

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

chr*_*.cl 12

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

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

# proguard-test.pro:
-include proguard-rules.pro
-keepattributes SourceFile,LineNumberTable
Run Code Online (Sandbox Code Playgroud)

另一方面,如果你只需要因为multidex而需要它,如果你使用的是minSdkVersion <21,ProGuard会绑定到multidex标志并自动运行.


T. *_*art 3

您还需要添加默认的混淆器规则:

proguardFiles getDefaultProguardFile('proguard-android.txt')
Run Code Online (Sandbox Code Playgroud)

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

testProguardFile 'proguard-debug.pro'
Run Code Online (Sandbox Code Playgroud)

  • 现在看来 testProguardFiles 不再工作了 (2认同)