【问题标题】:Using proguard with espresso/androidTest将 proguard 与 espresso/androidTest 一起使用
【发布时间】:2016-06-07 08:31:55
【问题描述】:

我正在尝试配置 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,我需要启用它。

【问题讨论】:

    标签: android proguard android-espresso


    【解决方案1】:

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

    # 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

    【讨论】:

      【解决方案2】:

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

      proguardFiles getDefaultProguardFile('proguard-android.txt')
      

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

      testProguardFile 'proguard-debug.pro'
      

      【讨论】:

      • 现在看来 testProguardFiles 不再起作用了
      猜你喜欢
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多