Saltar al contenido

Cree una aplicación de muestra en Cloud Foundry con SAP Cloud SDK

Ahora puede abrir su IDE favorito e importar el proyecto como Maven Project. Una vez que haya importado el proyecto a su IDE, la estructura del proyecto debería verse así:

firstapp
 /-- .pipeline
 |    |-- config.yml
 +-- application [firstapp-application]
 +-- cx-server
 +-- integration-tests [firstapp-integration-tests]
 |-- Jenkinsfile
 |-- manifest.yml
 |-- pom.xml

Lo primero que notará son los distintos directorios:

  • .pipeline
  • application [firstapp-application]
  • cx-server
  • integration-tests [firstapp-integration-tests]

Hay dos submódulos de Maven application [firstapp-application] y integration-tests [firstapp-integration-tests], que se ocupa de 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 sensibles sin utilizar la aplicación.
Además, hay scripts de utilidades dentro del cx-server directorio que se puede utilizar para la implementación y las pruebas locales, así como un archivo de configuración para su Jenkins construir una tubería i .pipeline.

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. Para obtener 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 back-end para proyectos. Estas áreas de especialización requieren diferentes paradigmas de programación, así como diferentes tipos de ciclos 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 presenta el resumen Cx server para una integración y entrega continuas.

application contiene código fuente, pruebas unitarias y configuración para una aplicación web real.

application [firstapp-application]
 /-- src
 |    /-- main
 |    |    /-- java
 |    |    |    /-- com.sap.cloud.sdk.tutorial
 |    |    |         |-- HelloWorldServlet.java
 |    |    /-- resources
 |    |    |    |-- application.properties
 |    |    /-- webapp
 |    |         /-- WEB-INF
 |    |              |-- beans.xml
 |    |              |-- web.xml
 |    /-- test
 |         /-- java
 |              /-- com.sap.cloud.sdk.tutorial
 |                   |-- UnitTest.java
 |-- pom.xml
  • src/main/java – Aquí está su código de producción, nada más. Como puede ver, el HelloWorldServlet, que veremos 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í (por lo general, cosas como archivos de definición de API para RAML o OpenAPI, Database Migration Files por Flyway o Liquibase).
  • src/main/webapp – Contiene el informe de implementación de la aplicación web. web.xml.
  • src/test/java – Contiene las pruebas unitarias de su aplicación. El propósito de las clases aquí es probar y validar aspectos individuales del flujo de datos y las operaciones de la computadora para un proyecto de aplicación.
  • 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 simplifiquen su entorno de compilación.

integration-tests Contiene las pruebas de integración de su aplicación. Su estructura es similar application.

integration-tests [firstapp-integration-tests]
 /-- src
 |    /-- test
 |         /-- java
 |         |    /-- com.sap.cloud.sdk.tutorial
 |         |         |-- HelloWorldServletTest.java
 |         |         |-- TestUtil.java
 |         /-- resources
 |              |-- arquillian.xml
 |-- pom.xml    
  • src/test/java – Aquí puedes poner todas tus pruebas de integración. Como ves, ya existe HelloWorldServletTest correspondiente a la HelloWorldServlet.
  • 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 su mejor práctica de integración de software y entorno de entrega continua (Cx). Los archivos incluidos permiten a los usuarios crear los suyos propios. Cx server como parte de un 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
 |-- cx-server
 |-- cx-server.bat
 |-- server.cfg
  • cx-server – SEO Unix Un script de bash te permite Jenkins servidor en su máquina local como parte de Docker envase.
  • cx-server.bat – Este script por lotes es el resto del cx-server guión hacer Windows usuarios.
  • server.cfg – Este es el archivo de configuración para los parámetros del servidor.

Una vez que el servidor Jenkins esté configurado para sus necesidades personales, los archivos en el directorio raíz del proyecto serán útiles:

  • Jenkinsfile – La definición de un Jenkins 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.
  • manifest.yml el informe de implementación para Cloud Foundry. Este archivo se tratará con más detalle más adelante en este tutorial.

Pruebas unitarias y pruebas de integración

Esta separación de módulos de prueba hace posible ejecutar pruebas unitarias y pruebas de integración sin implementarlas, así como implementar la aplicación sin ejecutar pruebas que consuman mucho tiempo. Las pruebas unitarias se pueden realizar en público dentro del módulo de aplicación application/src/test, o por separado unit-tests un módulo que no forma parte del arquetipo. Para el caso, recomendamos encarecidamente los artículos y videos educativos de Martin Fowler. Para empezar recomendamos leer su publicación al respecto. Pruebas unitarias.

Durante el desarrollo, es importante probar el código aplicado a 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 de prueba, puede resultar útil mantener su rendimiento dentro del submódulo dedicado de Maven. De esa manera, la aplicación accesible en sí puede iniciarse más tarde sin pruebas y sus dependencias.

Hecho

Inicie sesión para responder la pregunta