Una vez que se genera el proyecto Maven, puede abrir su IDE favorito y cargar el proyecto como Maven Project
. Una vez que haya importado el proyecto a su IDE, aparecerá la estructura completa:
Lo primero que notará son los distintos directorios:
application
cx-server
integration-tests
unit-tests
Estos son Maven submodules
y atender varios aspectos del código, las pruebas y la implementación de su aplicación. Debido a la siguiente separación de módulos, es posible ejecutar pruebas unitarias dedicadas y pruebas de integración sin utilizar la aplicación.
Proyecto de varios módulos
La ventaja de operar un proyecto de varios módulos para una aplicación es obvia una vez que aumenta la complejidad del software. Entonces resulta conveniente delegar la distribución de código y la responsabilidad a los desarrolladores para una aplicación o entorno de prueba. En términos de confiabilidad y continuidad, encontrará que las pruebas de front-end y la automatización de pruebas son tan importantes como las pruebas clásicas de posventa de su proyecto. Estas áreas de experiencia requieren diferentes paradigmas de programación y, por lo tanto, diferentes tipos de ciclo de vida de desarrollo. Para garantizar la estabilidad y confiabilidad generales del software, la configuración de varios módulos es la solución de mejores prácticas.
Para comenzar, echemos un vistazo al proyecto de aplicación típico, así como a las pruebas unitarias clásicas. Luego siga las pruebas de integración, que se utilizan para pruebas de código con servidores y recursos externos. Una vez que se cubren las pruebas de software, se le informará sobre los Cx server
para una integración y entrega continuas.
application
contiene el código fuente y la configuración de una aplicación web real.
src/main/java
– Aquí está su código de producción, nada más. Como puede ver, elHelloWorldServlet
, que verá con más detalle pronto.src/main/resources
– Todo lo que desee entra en su código de producción, pero no en el código coleccionable aquí (generalmente cosas como archivos de definición de API paraRAML
oOpenAPI
, archivos de migración de base de datos paraFlyway
oLiquibase
).src/main/webapp
– la descripción del despliegue de una aplicación web,web.xml
.src/test/resources
– Recursos adicionales para clases de prueba conectadas.pom.xml
– Este es su archivo de administración de proyectos para Maven, donde puede mantener otras dependencias de código abierto o usar complementos que simplifican su entorno de compilación.
unit-tests
contiene las pruebas unitarias de su aplicación. Su estructura es similar application
pero existen exclusivamente clases y recursos de prueba. El objetivo de este módulo es probar y validar aspectos individuales del flujo de datos y las operaciones computacionales en el application
proyecto.
src/test/java
– Este es el lugar para sus pruebas automatizadas.src/test/resources
– Las pruebas también pueden requerir recursos adicionales para funcionar correctamente como archivos de configuración. Este es su lugar.
integration-tests
Contiene las pruebas de integración de su aplicación. Su estructura es similar application
.
src/test/java
– Aquí puedes poner todas tus pruebas de integración. Como puede ver, elHelloWorldServiceTest
correspondiente a laHelloWorldServlet
.src/test/resources
– Aquí están todos los recursos necesarios para ejecutar o validar las pruebas de integración.
cx-server
el script y el archivo de configuración están ahí para administrar la integración de su software y el entorno de entrega continua de mejores prácticas (Cx
). Deja los archivos incluidos Linux
usuarios para crear sus propios Cx
servidor como parte de Docker
despliegue. Jenkins
El servidor se está ejecutando. Este servidor automatizado ayuda a administrar todos los pasos técnicos de un proceso de desarrollo de software.
cx-server
– SEOUnix
Un script de bash te permiteJenkins
servidor en su máquina local, parte de unDocker
envase.server.cfg
– Este es el archivo de configuración para los parámetros del servidor.
Tan pronto āsa Jenkins
el servidor está configurado para sus necesidades personales, los archivos en el directorio raíz del proyecto serán útiles:
Jenkinsfile
– La definición de unJenkins
pipeline
y sigue siendo parte del código fuente de los proyectos. Define los pasos que se ejecutan específicamente para una aplicación.pipeline_config.yml
– Este es el archivo de configuración para una aplicación específica.
Pruebas unitarias y pruebas de integración
La separación de los módulos de prueba permite que las pruebas unitarias y las pruebas de integración se ejecuten sin implementación, así como la implementación de la aplicación sin ejecutar pruebas que requieren mucho tiempo. Las pruebas unitarias se pueden realizar públicamente dentro del módulo de aplicación o por separado unit-tests
una carpeta que forma parte del arquetipo. En ese sentido, se recomiendan los artículos y videos educativos de Martin Fowler. Para empezar, considere leer su publicación al respecto. Pruebas unitarias.
Durante el desarrollo, es importante probar el código recién implementado en los servicios externos, es decir, la lógica que se ejecuta en un entorno distribuido. Aquí es donde las pruebas de integración son una herramienta importante para garantizar la precisión y la estabilidad en toda la implementación interna y externa. Dado que las pruebas de integración pueden contener información confidencial, como la lógica empresarial y las señales de acceso a las pruebas, puede resultar útil mantener su funcionamiento dentro de un Maven dedicado. submodule
. De esa manera, la aplicación accesible en sí puede iniciarse más tarde sin pruebas y sus dependencias.