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í …
- Cómo ejecutar swipe con appium en Java para la aplicación nativa de Android
- org.junit cant 'ser resuelto en IntelliJ
- Prueba JUnit con Robolectric: java.lang.InstantiationException
- ActivityInstrumentationTestCase2 vs ActivityTestRule
- NullPointerException validando el correo electrónico
+ 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.
- Prueba de Android JUnit4
- ¿Cómo probar en robolectric si abrí un fragmento en el botón de clic?
- Casos de prueba de unidad con JUnit + (Robolectric o Mockito o ambos en Android)
- No se puede ejecutar JUnit 4 caso de prueba en el proyecto Eclipse Android
- ¿Hay una manera de ejecutar la prueba de Espresso con múltiples métodos de prueba pero sólo un método de configuración?
- Espresso + Junit4 - iniciar sesión una vez antes de ejecutar todas las pruebas
- Android: Unidad de prueba de un servicio
- Espresso - compruebe si TextView existe en ListView
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).
- escuchar todos los eventos clave en un teclado suave Android
- Carpetas de tamaño de diseño de estudio de Android