Este proyecto es utilizado como proyecto base o plantilla para el desarrollo y a modo de ejemplo para ilustrar algunos aspectos del desarrollo y automatización de pruebas para las asignaturas relacionadas con ingenieria del software, sistemas de información y pruebas de software.
Descargar la última versión - Ver más detalles en el javadoc
Permite ilustrar, entre otros:
- Repaso del uso de JDBC para acceder a bases de datos
- Un conjunto de utilidades para simplificar el acceso a base de datos y el uso de tablas en Swing
- Implementación de MVC con Swing
- Automatización de pruebas unitarias con varias versiones de JUnit
- Estructura y configuración de un proyecto Maven y diferentes reports
Contiene los siguientes paquetes principales:
giis.demo.jdbc
: Repaso de acceso a base de datos con jdbcgiis.demo.tkrun
: Ilustra estructura de proyecto MVC con Swing (TicketRun)giis.demo.tkrun.ut
: Ilustra pruebas con JUnit para TicketRungiis.demo.util
: Diferentes utilidades de uso por parte de los anteriores
La estructura es la estándar de maven:
src/main/java
: Codigo fuente de aplicaciónsrc/test/java
: Pruebas unitariastarget
: Generado con el codigo objeto y reports
Este proyecto requiere un mínimo de Java 8 JDK.
Preparación del repositorio y del eproyecto:
- Desde GitHub: Crear un nuevo repositorio usando este proyecto como plantilla
(opción
Use this template
en este repositorio) - Desde el entorno de desarrollo local o desde linea de comandos:
Clonar el repositorio recién creado indicando su url
(si se hace desde linea de comandos:
git clone <url>
) - Cambiar el nombre del proyecto: Modificar estos ficheros:
.project
: cambiar<name>samples-test-dev</name>
para incluir el nombre del proyectopom.xml
: cambiar<artifactId>samples-test-dev</artifactId>
para incluir el nombre del proyecto- Recordar hacer push a main tras estos cambios
-
Desde línea de comandos con Apache Maven:
- Asegurarse de que JAVA_HOME apunta a un JDK y no JRE
- Ejecución completa:
mvn install
, incluye generación del Javadoc - Solo pruebas unitarias:
mvn test
, todas las pruebas:mvn verify
- Ejecución sin tests:
mvn install -DskipTests=true
, genera todos los jar incluyendo javadoc
-
Desde Eclipse con M2Eclipse instalado (las distribuciones recientes ya lo incluyen). Desde la raiz del proyecto:
- Asegurarse de que esta configurado JDK: Desde build path, editar JRE System Library y en Environment comprobar que JavaSE-1.8 apunta a un JDK en vez de un JRE
- Maven->Update Project: Actualiza todas las dependencias y permite usar el proyecto como si hubiera sido creado desde el propio Eclipse
- Run As->Maven install: Ejecuta este (o otros) comandos maven desde Eclipse
- Ejecutar los tests en
src/main/test
o el programa principal (aplicación swing) en la clasegiis.demo.util.SwingMain
La instalacion anterior compilará, ejecutará pruebas y dispondrá de los reports en carpetas dentro de target
:
reports/testapidocs/index.html
: javadoc del proyectosite/surefire-report.html
: report de las pruebas unitarias (ut)site/junit*
: report de todas las pruebas con el formato que genera junitsite/jacoco-ut
: reports de cobertura de código
Este proyecto está configurado con los correspondientes scripts de Dependabot (para actualización de versiones de dependencias) y GitHub actions (para realizar acciones automáticas cuando se realiza un pull request hacia main o un push de una rama). A continuación se describen y se indican las posibles personalizaciones a realizar:
.github/workflows/test.yml
: Ejecuta automáticamente un build y todas las pruebas unitarias. Si se mantiene, en el caso de que no se tengan pruebas unitarias, modificarlo para que solamente compile la aplicación:- cambiar
verify
porcompile
en la acciónrun: mvn verify ...
- eliminar el código a partir de
- name: Publish surefire test report
- cambiar
.github/workflows/pages.yml
: Exporta el javadoc de la aplicación a GitHub pages cuando se actualiza la rama main. La ejecución del workflow indicará fallo si no se ha configurado el repositorio para ello, por lo que se puede eliminar..github/dependabot.yml
: Permite que Dependabot cree una pull request cuando hay alguna dependencia que precisa actualización. Se recomienda mantenerlo y hacer merge de las pull requests que se creen.