Куда направляется вывод LogCat Log.x () при выполнении тестов Android JUnit? - PullRequest
20 голосов
/ 12 мая 2011

Я заметил, что при тестировании простых классов Java с помощью тестовых классов, полученных из TestCase и AndroidTestCase, вывод LogCat исчезает.

Можно ли по-прежнему захватывать вывод этих сообщений?или мой единственный выход - использовать более медленный ActivityInstrumentationTestCase2<> в качестве базового класса?

Ответы [ 4 ]

19 голосов
/ 28 октября 2011

У меня была похожая проблема ... Дело в том, что представление logcat, доступное в Eclipse, ничего не показывает при запуске проекта в режиме Android Junit.По крайней мере, в Android 2.1, который я использовал, это поведение.

Вы можете обойти эту проблему, проверив logcat из командной строки (окно терминала):

# check the device name you are using
# It gives something like this:
$ ./adb devices
List of devices attached 
emulator-5554   device

# open logcat of the device
$ ./adb -s emulator-5554 logcat
D/AndroidRuntime(  943): 
D/AndroidRuntime(  943): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
D/AndroidRuntime(  943): CheckJNI is ON
.
.
.
7 голосов
/ 13 мая 2011

Оба эти оператора выдают logcat в logcat:

    android.util.Log.d(TAG, "This is Log.d");
    System.out.println("This is System.out.println");
3 голосов
/ 03 декабря 2014

Просто для тех, кто использует Android Studio. Вы можете открыть окно инструмента Android DDMS (Cmd + 6) и отключить все фильтры, используя выпадающий список в правом верхнем углу. Кажется, он использует app:com.your.package.name по умолчанию, что фильтрует результаты теста.

2 голосов
/ 05 апреля 2012

Просто использование операторов Log.v("MyIdentifier","MyMessage"), кажется, регистрирует все для меня, как из самих классов модульного тестирования, так и из моего тестируемого приложения Android.

Эта информация может помочь кому-то, кто впервые использует Android jUnit:

Тестирование Android jUnit фактически запускает действие только тогда, когда getActivity() вызывается из тестового класса. Если функция get Activity не вызывается, вы не увидите результатов ни одного из зарегистрированных вызовов, например, onCreate или onResume. Похоже, что есть исключение из этого правила, когда тестирование, помеченное как «Main» и «Launcher» в манифесте Android, проверяется.

...