2016-06-07 74 views
4

我試圖配置proguard使用它與我的espresso UI測試風味。事情是Proguard往往忽略我的調試proguard配置。使用proguard咖啡/ androidTest

這是配置的樣子:

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的。

回答

1

您還需要添加默認的proguard的規則:

proguardFiles getDefaultProguardFile('proguard-android.txt') 

這條線可以去掉,因爲它是一個重複:

testProguardFile 'proguard-debug.pro' 
6

如果你希望你的測試版本儘可能接近從實打實的,試試這個:

# 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