Как сохранить мои методы тестирования с proguard.cfg - PullRequest
0 голосов
/ 01 июня 2011

Для моего тестирования инструментария Android мне нужна дополнительная точка входа в мои классы. Эти методы не используются в реальном приложении. Моя идея состояла в том, чтобы начать их все с test_ и иметь общее правило, чтобы исключить их от оптимизации. Вот как далеко я добрался:

-keepclassmembers class com.xxx.**.* {
    public ** test_* ();
    public ** test_* (**);
    public static ** test_* ();
    public static ** test_* (**);
}

Но все равно не работает. public static void test_destroy (final android.content.Context context) и private void dropTables (final SQLiteDatabase db) только что были удалены из кода. И я понятия не имею, почему.

Как правильно использовать шаблоны с подстановочными знаками?

Ответы [ 2 ]

4 голосов
/ 02 июня 2011

Решение

-keepclassmembers class com.XXX.**.* {
    *** test_* (...);
}
3 голосов
/ 22 апреля 2013

Другой способ сделать это - использовать аннотацию (то есть @VisibleForTesting от guava), чтобы пометить эти методы.Тогда в Proguard вы можете оставить все точки входа и участников с такой аннотацией:

-keep @com.google.common.annotations.VisibleForTesting class *

-keepclasseswithmembers class * {
  @com.google.common.annotations.VisibleForTesting *;
}
...