{"id":20830412,"url":"https://github.com/javiertuya/samples-test-spring","last_synced_at":"2026-02-17T09:11:04.215Z","repository":{"id":37876591,"uuid":"424885540","full_name":"javiertuya/samples-test-spring","owner":"javiertuya","description":"Ejemplos de automatización de pruebas con Spring Boot","archived":false,"fork":false,"pushed_at":"2025-05-03T05:35:31.000Z","size":247,"stargazers_count":12,"open_issues_count":0,"forks_count":8,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-05-07T22:13:00.797Z","etag":null,"topics":["bdd","ci-cd-pipeline","github-actions","java","jbehave","jenkins","junit","maven","spring-boot","testing"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javiertuya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-05T09:01:28.000Z","updated_at":"2025-05-03T05:35:35.000Z","dependencies_parsed_at":"2023-02-14T19:16:14.247Z","dependency_job_id":"37030b6d-3cad-49ff-be24-e9ecdb0bf195","html_url":"https://github.com/javiertuya/samples-test-spring","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javiertuya%2Fsamples-test-spring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javiertuya%2Fsamples-test-spring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javiertuya%2Fsamples-test-spring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javiertuya%2Fsamples-test-spring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javiertuya","download_url":"https://codeload.github.com/javiertuya/samples-test-spring/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252961843,"owners_count":21832198,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bdd","ci-cd-pipeline","github-actions","java","jbehave","jenkins","junit","maven","spring-boot","testing"],"created_at":"2024-11-17T23:24:26.910Z","updated_at":"2026-02-17T09:11:04.209Z","avatar_url":"https://github.com/javiertuya.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://github.com/javiertuya/samples-test-spring/actions/workflows/build.yml/badge.svg)](https://github.com/javiertuya/samples-test-spring/actions/workflows/build.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=my%3Asamples-test-spring\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=my%3Asamples-test-spring)\n[![Javadoc](https://img.shields.io/badge/%20-javadoc-blue)](https://javiertuya.github.io/samples-test-spring/)\n\n# samples-test-spring\n\nEste proyecto es utilizado a modo de ejemplo para ilustrar algunos aspectos del desarrollo y automatización de pruebas para\nlas asignaturas relacionadas con ingenieria del software, sistemas de información y pruebas de softare.\n\n[Descargar la última versión publicada](https://github.com/javiertuya/samples-test-spring/releases) - \n[Ver más detalles en el javadoc](https://javiertuya.github.io/samples-test-spring/)\n\n\n## Contenido\n\nEste proyecto ilustra:\n- Diferentes configuraciones para la automatización de pruebas de aplicaciones Spring Boot 4 con JUnit 6:\n  - Pruebas unitarias de acceso a la base de datos\n  - Pruebas parametrizadas (JUnit 6 y Junit 4 con JUnitParams)\n  - Utilización de mocks\n  - Pruebas de servicios rest y controladores (MockMvc)\n  - Pruebas de un interfaz de usuario web con Selenium, Selema, Page Objects y Page Factory\n  - Pruebas del API con Zerocode\n  - Automatización de pruebas BDD con Cucumber (unitarias y de interfaz de usuario)\n- Estructura de un proyecto maven y configuración del pom.xml:\n  - Pruebas unitarias (ut), de integración (it) y sistema (st)\n  - Generación de reports estandar (Surefire)\n  - Generación de reports de cobertura de código (JaCoCo)\n  - Reports de resultados de test en formato JUnit html\n- Integración continua con GitHub Actions (proceso completo CI/CD):\n  - Estructuración del worflow con varios jobs que se comunican mediante artefactos\n  - Publicación de resultados de test que fallan\n  - Configuración de Selenium Dynamic Grid como servicio de navegadores y grabación de video\n  - Análisis estático de calidad del código \n  (SonarQube alojado en [sonarcloud.io](https://sonarcloud.io/project/overview?id=my:samples-test-spring))\n  - Análisis estático de vulnerabilidad de dependencias (OWASP Dependench Check)\n  - Despliegue de la aplicación en Azure (usando Docker Hardened Images):\n    - En diferentes entornos:\n      - [rama main: producción](https://samples-test-spring-main.azurewebsites.net/) \n      - [otras ramas: preproducción/integración](https://samples-test-spring-develop.azurewebsites.net/)\n      - NOTA: el primer acceso a estos despliegues puede tardar bastantes segundos hasta que el container esté listo\n    - Prueba Post-deploy de sistema (st) con \n      [selenium](https://github.com/SeleniumHQ/selenium) \n      y [zerocode](https://github.com/authorjapps/zerocode)\n  - Ejemplo de despliegue en Heroku (obsoleto)\n- Integración continua con Jenkins (para ejecución on-premise):\n  - Fichero Jenkinsfile con la configuración de la pipeline\n  - Incluye acciones análogas a las usadas en GitHub Actions (excepto despliegue)\n\n## Requisitos e Instalación\n\n- [Descargar la última versión](https://github.com/javiertuya/samples-test-spring/releases) y disponer al menos de Java 17 JDK\n- Opción 1: Apache Maven:\n\t- Asegurarse de que JAVA_HOME apunta a un JDK y no JRE\n\t- Todas las pruebas y javadoc: `mvn install`\n\t- Solo javadoc: `mvn package -DskipTests=true`\n\t- Solo pruebas unitarias (ut): `mvn test -Dtest=**/ut/**`\n\t- Solo pruebas de integración (it) web con Selenium: `mvn test -Dtest=**/it/**`\n\t- Solo pruebas de sistema (st) para postdeploy:\n\t  - Arrancar el servidor en `src/main/java`\n\t  - `mvn test -Dtest=**/st/**`\n- Opción 2: Eclipse con M2Eclipse instalado (distribuciones como Oxigen IDE for Java EE Developers ya lo incluyen).\nDesde la raiz del proyecto:\n\t- Asegurarse de que se tiene instalado Lombok. Ver: https://projectlombok.org/setup/eclipse\n\t- Asegurarse de que se tiene configurado un JDK: Desde build path, editar JRE System Library y en Environment\n\tcomprobar que JavaSE-17 apunta a un JDK en vez de un JRE\n\t- *Maven-\u003eUpdate Project*\n\t- *Run As-\u003eMaven test*\n\t- Para ejecutar desde el entorno (run as JUnit Test) \n\n## Reports\nLa instalacion anterior compilará, ejecutará pruebas y dispondrá de los reports en `target`:\n\n- `reports/surefire.html`: report estandar de las pruebas unitarias\n- `site/junit*`: report consolidado de todas las pruebas con el formato que genera junit\n- `site/screenshot`: Imagenes tomadas durante las pruebas web con Selenium\n- `site/jacoco`: reports de cobertura de código.\n- `reports/cucumber*.html`: reports estandar de cucumber\n- `zerocode-junit*.html`: reports estandar de zerocode\n- `reports/testapidocs/index.html`: javadoc del proyecto (generados en la fase `package`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaviertuya%2Fsamples-test-spring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaviertuya%2Fsamples-test-spring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaviertuya%2Fsamples-test-spring/lists"}