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:

… [exec] OK (1 pruebas) …

Esperaría ver un fallo en la línea de comandos.

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?

  • Android Robolectric unidad de prueba de Marshmallow PermissionHelper
  • Actualizar Robolectric 2.4: Obtener error de etiqueta de aplicación para proyectos de biblioteca en eclipse
  • Pruebas unitarias con Android Studio y Gradle?
  • ¿Puedo probar las notificaciones de la barra de estado utilizando el marco de pruebas de Android?
  • Las pruebas consecutivas de Junit de Android no reflejan los datos reales de la base de datos subyacente
  • ¿Cómo probar la clase usando resolver contenido / proveedor?
  • ¿Cómo ejecutar pruebas de unidad para Android no está en el dispositivo o emulador?
  • Akquinet (Android con el arquetipo de prueba) - las pruebas de unidad no se ejecutan
  • Android TestRunner falla debido a la excepción de IllegalState
  • Android Eclipse Plugin: Prueba de Instrumentación Runner no especificado
  • Tratando de probar un módulo de Android en la aplicación MultiDex, com.android.test.runner.MultiDexTestRunner no se reconoce
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.