Jenkins y Running AndroidJUnitRunner Instrumentation Tests

Tengo una aplicación de Android que estoy intentando configurar con Jenkins. Tengo que arrancar un emulador usando el complemento de emulador de Android, y la construcción del proyecto con un script gradle, pero no puedo conseguir que ejecute una prueba simple que escribí utilizando el AndroidJUnitRunner.

Mi salida de Jenkins se ve así …

+ adb shell pm list instrumentation instrumentation:com.android.emulator.connectivity.test/android.test.InstrumentationTestRunner (target=com.android.emulator.connectivity.test) instrumentation:com.android.emulator.gps.test/android.test.InstrumentationTestRunner (target=com.android.emulator.gps.test) instrumentation:com.android.smoketest.tests/com.android.smoketest.SmokeTestRunner (target=com.android.smoketest) instrumentation:com.android.smoketest.tests/android.test.InstrumentationTestRunner (target=com.android.smoketest) instrumentation:com.example.android.apis/.app.LocalSampleInstrumentation (target=com.example.android.apis) [Short Sounds] $ /bin/sh -xe /tmp/hudson7415767398022941631.sh + adb shell am instrument -w com.sloths.speedy.shortsounds/android.support.test.runner.AndroidJUnitRunner INSTRUMENTATION_STATUS: id=ActivityManagerService INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.sloths.speedy.shortsounds/android.support.test.runner.AndroidJUnitRunner} INSTRUMENTATION_STATUS_CODE: -1 android.util.AndroidException: INSTRUMENTATION_FAILED: com.sloths.speedy.shortsounds/android.support.test.runner.AndroidJUnitRunner 

Como se puede ver, he enumerado la instrumentación adb a través de un comando shell. AndroidJUnitRunner no se encuentra en la lista. Soy semi-positivo que debe estar allí para funcionar correctamente.

He añadido la etiqueta de configuración adecuada en el archivo build.gradle … es decir …

 defaultConfig { testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } 

También he añadido estas dependencias.

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) ... androidTestCompile 'com.android.support.test:runner:0.2' // Set this dependency to use JUnit 4 rules androidTestCompile 'com.android.support.test:rules:0.2' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1' } 

Y en caso de que su útil aquí es la prueba que estoy tratando de ejecutar. Es sólo una simple prueba de unidad que me gustaría tener un fallo.

 import android.support.test.runner.AndroidJUnit4; import android.test.ActivityInstrumentationTestCase2; import com.sloths.speedy.shortsounds.view.MainActivity; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) public class InitialFailingTest extends ActivityInstrumentationTestCase2<MainActivity> { public InitialFailingTest() { super(MainActivity.class); } @Override protected void setUp() throws Exception { super.setUp(); } @Test public void initialFailingTestForJenkins() { assertTrue(false); } } 

¿Cómo puedo hacer que Jenkins realice mi prueba de unidad? Cualquier ayuda es muy apreciada.

Intenta decirle a jenkins que ejecute la tarea "gradle connectedAndroidTest"

También puede hacer los pasos de preparación para connectedAndroidTest que es

 ./gradlew installDebug installDebugAndroidTest 

A continuación, su paquete de prueba y el AndroidJUnitRunner debe aparecer cuando haces pm list instrumentation . Podría ser útil cuando más tarde tenga una suite de pruebas más grande y desee invocar el comando de un am instrument con más opciones (como especificar el tamaño de la prueba).

  • Junit4 abrir un getResources (). OpenRawResource usando mockito ejecuta nullpointer
  • Android Junit4 prueba en el hilo de la interfaz de usuario
  • Android Studio simple Unidad de prueba no funciona
  • "Los animadores sólo se pueden ejecutar en subprocesos Looper" durante las pruebas de instrumentación en dispositivo
  • JUnit4 - AssertionFailedError: No se han encontrado pruebas
  • Unidad de prueba Java clase que carga la biblioteca nativa
  • Prueba de clases sin actividad en Android
  • Akquinet (Android con el arquetipo de prueba) - las pruebas de unidad no se ejecutan
  • Ejecución de pruebas Android método setUp () se llama varias veces
  • Anotación @UiThreadTest produce "java.lang.Exception: No se pueden ejecutar métodos"
  • AndroidJunit4.class runner en Android Studio no invoca métodos @Test
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.