Arquisoft / InciDashboard_e3b

InciDashboard_e3b
The Unlicense
0 stars 1 forks source link

Segregar pruebas unitarias de las pruebas de integración #25

Closed kilianpg closed 6 years ago

kilianpg commented 6 years ago

Las pruebas unitarias ejecutadas en la fase mvn test (Maven Surefire Plugin) están pensadas para ejecutarse de forma autónoma sin necesidad de depender de servicios externos como PostgreSQL, Apache Zookeeper, Apache Kafka u el resto de módulos. Por ese motivo deben hacer uso de los mockups o fixtures necesarios como por ejemplo la utilización de bases de datos en memoria sin necesidad de lanzar dichos servicios.

A su vez las pruebas de integración (entre las que se incluyen las de aceptación y rendimiento), ejecutadas en la fase mvn verify (Maven Failsafe Plugin) han sido configuradas para lanzar automáticamente la ejecución de los contenedores (mvn pre-integration-test) y una vez ejecutas exitosamente o no las pruebas, detener también automáticamente los contenedores implicados (mvn post-integration-test).

Dado que la fase de construcción del contenedor (mvn docker:build) precisa que se ejecute previamente la fase de empaquetado (mvn package) y esta a su vez depende de que se ejecuten correctamente las pruebas unitarias (mvn test), dichas pruebas no pueden depender de un contenedor que aun no se ha construido (dependencia cruzada).

Hasta que se solucione este problema, se han desactivado temporalmente la ejecución por defecto de todas las pruebas.

Referencias:

Ver también: Issue: #20, Arquisoft/Inci_e3b_modules#5

UO244730 commented 6 years ago

¿Qué mockups se utilizarían en el caso de Kafka y Zookeeper?

UO244730 commented 6 years ago

Parece (no estoy seguro, me vendría bien una segunda opinión) que ya funciona sin necesidad de arrancar PostgreSQL, pero sigue siendo necesario Kafka y Zookeeper.

Sigue sin pasar los tests, el mismo error que comenté aquí.

UO244730 commented 6 years ago

He añadido un par de clases que actúan como servidores locales de Kafka y Zookeeper. No puedo comprobar si funcionan del todo correctamente hasta que los tests estén arreglados.

kilianpg commented 6 years ago

Para las pruebas con Kafka puede ser interesante consultar el capitulo correspondiente de la documentación de spring-kafka: 4.3 Testing Applications