You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
2.6 KiB

  1. # Running UnitTests, Functional and Laod Tests on eshopOnContainers
  2. ## Unit and Functional tests for each microservice
  3. En cada uno de los diferentes micro-servicios creados hay disponibles el conjunto de tests creados para validar su funcionamiento. Con el fin de mantener lo máximo posible la autonomía de cada micro-servicio los diferentes proyectos de tests están físicamente juntos con el resto de código. Así, por ejemplo, si desplegamos en nuestro explorador de soluciones el codigo del servicio de *Ordering* podrá ver los proyectos de *Ordering.FunctionalTests* y *Ordering.UnitTests*.
  4. <p>
  5. <img src="../img/unitandfunctests/orderingservicetests.PNG">
  6. <p>
  7. Para ejecutar los tests unitarios de los diferentes micro-servicios solamente tendremos que seleccionarlos con nuestro *TestView*, o su herramienta preferida, y ejecutarlos. Estos tests no tienen ninguna dependencia y por lo tanto no se necesita nada especial para que los mismos funcionen.
  8. Al contrario, los tests funcionales si tienen dependencias con ciertos elementos de la infraestructura como por ejemplo, la base de datos de Sql Server, el sistema de colas etc.
  9. <p>
  10. <img src="../img/unitandfunctests/functionaltestsview.PNG">
  11. <p>
  12. Por ello, para correr estos tests es necesario tener disponible ciertos elementos de infraestructura. Con el fin de facilitar esta construcción en la carpeta de tests se dispone de un compose que nos permitirá crear estos elementos.
  13. > docker-compose -f .\docker-compose-tests.yml -f .\docker-compose-tests.override.yml up
  14. Cada proyecto de test funcionales usa un TestServer configurado con la infraestructura levantada en el compose anterior que nos permitirá correr sin ningun problema los diferentes tests.
  15. > Puede obtener más información sobre *TestServer* en [este enlace](https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-2.1).
  16. ## Integration Tests
  17. Hasta aquí hemos hablado sobre como cada micro-servicio contiene los tests, unitarios y funcionales, que le ocupan, no obstante también son necesarios diferentes tests de integración para verificar el trabajo entre los diferentes elementos. Estos proyectos de pruebas están situados en un lugar común, la carpeta tests y contiene las diferentes pruebas de integración del sistema.
  18. <p>
  19. <img src="../img/unitandfunctests/integrationtestsview.PNG">
  20. <p>
  21. Para poder ejecutarlos, al igual que antes es necesario disponer de la infraestructura necesaria con lo que podemos utilizar el *compose* mencionado anteriormente.
  22. ## LoadTests project
  23. El trabajo con los tests de carga está descrito en [este fichero de documentación](../test/ServicesTests/LoadTest/readme.md) que puede leer.