Arquisoft / Arquisoft/InciManager_e3b

Segregar pruebas unitarias de las pruebas de integración

Open
#56 3 comments 0 reactions 1 assignee Claimed by @UO244730 View on GitHub
bug help wanted Integración Test
Dominant language
Java
Stars
0
Forks
4
PR merge metrics
No merged PRs in 30d

Description

Las pruebas unitarias ejecutadas en la fase `mvn test` ([Maven Surefire Plugin](http://maven.apache.org/surefire/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](https://github.com/Arquisoft/Agents_e3b/commit/31470989957ece88eb075f94b2326ab6e70f9e9c) 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](http://maven.apache.org/surefire/maven-failsafe-plugin/)) han [sido configuradas](https://info.michael-simons.eu/2016/08/25/integration-testing-with-docker-and-maven/) 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](https://github.com/Arquisoft/InciManager_e3b/commit/8176da95f5d9c1e63751a0a439f8f015099f7a3f).

Referencias:
- [*Testing Unit vs Integration vs Regression vs Acceptance*](http://www.getlaura.com/testing-unit-vs-integration-vs-regression-vs-acceptance/)
- [*Testing in Spring Boot*](http://www.baeldung.com/spring-boot-testing)
- [*Integration testing with Docker and Maven*](https://info.michael-simons.eu/2016/08/25/integration-testing-with-docker-and-maven/)
- [*Integration testing strategies for Spring Boot microservices*](https://blog.codecentric.de/en/2017/02/integration-testing-strategies-spring-boot-microservices/)

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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.