Android JUnit: define una subclase de aplicación diferente

Así que para mi proyecto normal de Android, tengo lo siguiente en AndroidManifest.xml:

<application android:name=".utilities.App" ...> .... </application> 

Y luego tengo mi clase de aplicación:

 public class App extends Application { .... } 

Y luego tengo un proyecto Android JUnit Test asociado con el proyecto de Android. Todo está muy bien y puedo escribir pruebas JUnit. Sin embargo, estoy tratando de ejecutar la cobertura de código con mis pruebas JUnit y estoy recibiendo resultados hinchados. La razón es porque mi clase App se llama y se inicializa como si mi aplicación realmente se inició. No quiero que mi clase de aplicación personalizada se ejecute cuando ejecuto las pruebas de JUnit o la cobertura de código. Cualquier configuración que necesitaría para las pruebas de JUnit irá en el método apropiado de JUnit setup() . ¿Hay alguna manera de evitar que ejecute mi clase de aplicación personalizada o una forma en que las clases / métodos / líneas que se ejecutan debido a la creación de mi clase de aplicación no se cuentan para la cobertura de código?

Una solución temporal que he encontrado funcionará a menos que alguien tenga mejores ideas.

  • Entra en AndroidManifest.xml del proyecto Android principal.
  • Cambie el atributo android: name de ".utilities.App" a "android.app.Application"
  • Ejecute la utilidad de cobertura de código / pruebas JUnit
  • Cambie el atributo android: name de nuevo de "android.app.Application" a ".utilities.App"
  • Vuelva a implementar la aplicación en el dispositivo (para que utilice la clase de aplicación correcta cuando se ejecuta externa a las pruebas de cobertura de código / JUnit)

Estoy seguro de que la verdadera solución es automatizar este proceso, pero soy demasiado perezoso para hacerlo, y sólo se siente mal y mal. Pero al menos es una solución a menos que alguien tenga alguna idea.

  • Obtener resultado de una actividad después de terminar (); En una prueba de unidad de Android
  • Java.lang.NoClassDefFoundError: prueba androide y junit
  • android: junit running Pruebas parametrizadas
  • ¿Cómo ejecutar una prueba JUnit4 simple en Android Studio 1.1?
  • Envío de mayúsculas a un TextEdit durante pruebas instrumentadas
  • Cómo probar android con ormlite proyecto
  • Androide plain Junit con Daga 2
  • Cómo probar unidades de manejo de texto bidireccional
  • Prueba Robolectric se ejecuta en Android Studio, pero no por gradle en la consola
  • Robolectric - cómo desactivar una prueba de unidad?
  • Pruebas parametrizadas de instrumentación en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.