Где выходит LogCat Log.x() при запуске тестов Android JUnit?
Я заметил, что при тестировании простых классов Java через тестовые классы, полученные из TestCase
и AndroidTestCase
, выход LogCat исчезает.
Можно ли сохранить вывод этих сообщений? или мой единственный регресс - использовать гораздо более вялый ActivityInstrumentationTestCase2<>
как базовый класс?
Ответы
Ответ 1
У меня была аналогичная проблема... Дело в том, что представление 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
.
.
.
Ответ 2
Оба этих оператора производят log logcat:
android.util.Log.d(TAG, "This is Log.d");
System.out.println("This is System.out.println");
Ответ 3
Просто для тех, кто использует Android Studio. Вы можете открыть окно инструмента Android DDMS (Cmd + 6) и отключить любые фильтры, используя раскрывающийся список в правом верхнем углу. По-видимому, используется app:com.your.package.name
по умолчанию, который фильтрует тестовый результат.
Ответ 4
Просто использование операторов Log.v("MyIdentifier","MyMessage")
, кажется, регистрирует все для меня, как из самих классов Unit test, так и из моего тестируемого приложения Android.
Эта информация может помочь кому-то, кто использует Android jUnit в первый раз:
Android jUnit testing только начнет действие, когда getActivity()
вызывается из тестового класса. Если функция Activity не вызывается, вы не увидите результатов каких-либо вызовов, которые вы записали, например, onCreate
или onResume
. Кажется, что существует исключение из этого правила, хотя, когда активность, отмеченная как "Главная" и "Запуск" в манифесте Android, находится под контролем.