2011-11-26 7 views
10

Desarrollé para mi aplicación un pequeño conjunto de pruebas de Android escritas en Scala que usa la biblioteca Robotium. La suite es para todos los efectos un proyecto de prueba JUnit estándar de Android y se ejecuta con éxito si se lanza desde Eclipse.¿Cómo puedo ejecutar pruebas de Android con sbt?

Ya he creado y ejecutado con éxito mi aplicación principal de Android con sbt android-plugin. La aplicación principal se encuentra en [ProjectDir]/src/main. También pude con éxito build my Android test application que se encuentra en el directorio [ProjectDir]/tests/src/main. Comprobé el emulador y la aplicación de prueba parece haber sido instalada correctamente con el comando tests/android:install-emulator de android-plugin. Sin embargo, cuando trato de ejecutar el proyecto de prueba a través de sbt tests/android:test-emulator, me sale:

... 
Test results for InstrumentationTestRunner= 
Time: 0.001 

OK (0 tests) 

¿Cómo puedo conseguir SBT android-plugin para reconocer que el proyecto contiene las pruebas JUnit y ejecutarlos?

Respuesta

1

La convención de nomenclatura utilizada aquí es la misma que la JUnit normal y, como tal, debe nombrar las pruebas xxxTest.class. También necesitan extender TestCase (AndroidTestCase, InstrumentationTestCase, etc.).

Para reiterar, Eclipse ejecutar un comando que se verá así:

adb shell am instrument -w -e class com.android.foo.FooTest,com.android.foo.TooTest com.android.foo/android.test.InstrumentationTestRunner 

Se añadirá el nombre de clases para el comando de modo convención de nomenclatura podría no aplicarse.

Si se ejecuta desde SBT, se ejecutará

adb shell am instrument -w com.android.foo/android.test.InstrumentationTestRunner 

que encontrar todas las clases bajo el nombre del paquete de la aplicación com.android.foo que acaba con someClassNameTest.

+0

¿Estás diciendo que funciona para ti? Estas son pruebas que se ejecutan sin modificaciones dentro del corredor de prueba Junit Android de Eclipse. No conozco una convención de nomenclatura de clase, pero conozco un método que da nombre a la convención: que los nombres de los métodos deben ir precedidos de la palabra "prueba". Mis pruebas extienden una clase personalizada 'TestFixture' que extiende' ActivityInstrumentationTestCase2'. –

+0

¿Has probado FixtureTest? – charroch

Cuestiones relacionadas