2016-06-07 1 views
4

Я пытаюсь настроить proguard, чтобы использовать его с моим вкусом теста Upress. Дело в том, что Proguard имеет тенденцию игнорировать мою конфигурацию отладки proguard.Использование proguard с espresso/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.