studio - testear aplicaciones android
¿A dónde va la salida de LogCat''s Log.x() cuando se ejecutan las pruebas de Android JUnit? (4)
Ambas declaraciones producen log log en logcat:
android.util.Log.d(TAG, "This is Log.d");
System.out.println("This is System.out.println");
Noté que al probar clases de Java simples mediante clases de prueba derivadas de TestCase
y AndroidTestCase
, la salida de LogCat desaparece.
¿Es posible capturar todavía la salida de estos mensajes? o mi único recurso es usar el ActivityInstrumentationTestCase2<>
mucho más lento como clase base?
El simple hecho de usar las Log.v("MyIdentifier","MyMessage")
parece registrar todo para mí, tanto de las clases de prueba de la Unidad como de mi aplicación de Android bajo prueba.
Esta información puede ayudar a alguien que use Android jUnit por primera vez:
Android jUnit testing solo iniciará realmente una actividad cuando se getActivity()
desde una clase de prueba. Si no se llama a Get Activity, no verá los resultados de ninguna de las llamadas de registro que haya escrito, por ejemplo, onCreate
u onResume
. Parece que hay una excepción a esta regla cuando la Actividad marcada como "Principal" y "Iniciador" en el Manifiesto de Android está bajo prueba.
Solo para cualquiera que use Android Studio. Puede abrir la ventana de la herramienta DDMS de Android (Cmd + 6) y desactivar cualquier filtro usando el cuadro desplegable en la parte superior derecha. Parece que usa app:com.your.package.name
como predeterminado, que filtra la salida de prueba.
Tuve un problema similar ... El punto aquí es que la vista logcat disponible en Eclipse no muestra nada cuando se ejecuta el proyecto en el modo Junit de Android. Al menos, en el Android 2.1 que estaba usando, ese es el comportamiento.
Puede solucionar este problema comprobando el logcat desde la línea de comandos (ventana de terminal):
# 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
.
.
.