Prueba de la unidad de Android que no informa Fallando con error ()
He escrito una prueba de unidad que simplemente extiende TestCase y tengo lo siguiente:
public class MetricParserTests extends TestCase { @Override protected void setUp() throws Exception { super.setUp(); } @Override protected void tearDown() throws Exception { super.tearDown(); } public void testFailure() { fail("This needs to fail"); } }
Cuando ejecuto mis pruebas usando ant test
o adb shell am instrument
obtengo los siguientes resultados:
- Prueba de la clase de comunicación con DB a través de DAO de ORMLite
- Cómo obtener la salida de registro de Android mostrada con las pruebas de JUnit (utilizando JUnit nativo sin emulador)
- Cómo probar Menú
- Junit / Mockito - esperar la ejecución del método
- Java.lang.IllegalAccessError: Clase ref en clase pre-verificada resuelto a la implementación inesperada obteniendo mientras ejecuta proyecto de prueba?
… [exec] OK (1 pruebas) …
Esperaría ver un fallo en la línea de comandos.
- No se pudieron determinar las dependencias para todas las tareas con robolectric gradle plugin
- ¿Cómo puedo probar el código de Android que tenga View Animators?
- La prueba de Android JUnit de Simpe se cuelga en Eclipse
- JUnit prueba para la aplicación de Android con fragmentos
- VerifyError con PowerMock en Android
- Prueba de unidad Android: connectedAndroidTest no ejecuta mi caso de prueba
- Mono Android. Marco de pruebas unitarias
- Recursos $ NotFoundException al llamar a Robolectric.buildActivity ()
Creo que sé cuál es el problema. Pude reproducir el problema y solucionarlo. El comando que utiliza no reconstruye y vuelve a instalar el proyecto de prueba en un dispositivo. Cuando llame a ant test
, sólo ejecutará las pruebas que ya están instaladas en ese dispositivo.
Lo que necesita llamar son los tres comandos en el directorio del proyecto de prueba:
ant debug ant installd ant test
A continuación, todas las pruebas se reconstruirán y volverán a instalarse y se ejecutarán las últimas pruebas. Si no llama a debug
e installd
, los cambios que hizo a las pruebas no se aplican.
No he tenido experiencia reciente en las pruebas de Android, pero aquí es lo que he encontrado …
Puede usar pruebas normales de JUnit si su código está totalmente desacoplado de Android (vea aquí un ejemplo). Esto se ejecutaría en su JVM usando el corredor JUnit.
Sin embargo, si está intentando ejecutar estas pruebas en un dispositivo Android (ya sea a través de hormigas o las herramientas de línea de comandos), debe crear un proyecto completo de prueba de Android (consulte aquí ). Para probar "en el dispositivo", los casos de prueba necesitan extender una de las clases de prueba de Android como ActivityInstrumentationTestCase2<T>
y se ejecutan utilizando el InstrumentationTestRunner
en la máquina virtual de Dalvik en el dispositivo Android. El uso de un IDE o de las herramientas de línea de comandos para crear un proyecto de prueba debe crear una prueba de ejemplo para que pueda trabajar.
Esta entrada de blog vinculada a partir de los comentarios de la publicación anterior es una buena fuente de información, como es el documento de Fundamentos de Pruebas de Android .
El método testFailure () no tiene una anotación @Test. ¿Es eso correcto?
- ¿Cuál podría ser la razón de la falla de jabón (código de error: soapenv: cliente, faultstring: solicitud incorrecta)
- Problema al auto-incrementar versionCode con Gradle