Archivo

Entradas Etiquetadas ‘DUnitX’

3- Integración continua con Delphi (Jenkins) – Primer proyecto

martes, 21 de enero de 2020 Sin comentarios

Llegados a este punto (y vistas las entradas anteriores) ya tenemos completa nuestra configuración para poder automatizar un proyecto. Así que vamos a ver los pasos para generar nuestro primer proyecto en Jenkins que nos permitirá automatizar la generación/ejecución de la aplicación de pruebas unitarias (DUnitX).

Antes de continuar os dejo los links a las otras entradas de esta serie (las anteriores y las previstas):

1- Integración continua con Delphi (GIT)
2- Integración continua con Delphi (Jenkins)-Instalación
3- Integración continua con Delphi (Jenkins) – Primer proyecto
4- Integración continua con Delphi (Jenkins) – Pipelines

Para poder continuar con el artículo, primero vamos a crear 2 proyectos de Delphi. El primero será nuestro proyecto de prueba y el segundo serán los Test Unitarios (con DUnitX) sobre ese proyecto.

Ambos ya los tenéis subidos al repositorio con el que estamos trabajando desde el inicio de las entradas de esta serie (ahora ya está público y accesible):

https://github.com/NeftaliBlog/Ejemplos/

PROYECTOS DE TRABAJO

  • Proyecto de prueba: Continuaré con el proyecto que implementé en la primera entrada y que nos sirvió para ilustrar los primeros pasos con GIT. A este proyecto le he añadido una unit uFunciones.pas las funciones matemáticas básicas, sobre la que crearemos test unitarios con DUnitX. El formulario tiene una estructura como la que veis en la imagen.

image

  • Proyecto de Test Unitarios (DUnitX): Proyecto con DUnitX que contiene los test unitarios sobre las funciones definidas en la unit uFunciones.pas. La estructura de la clase de test es la que veis en la imagen siguiente.
    He añadido unos cuantos tests que nos servirán para las pruebas.

image

No voy a profundizar mucho más, en esta entrada, en el tema de DUnitX y pruebas unitarias. Si os interesa saber más podéis revisar anteriores entradas que he publicado en el blog sobre TDD. En ellas he hablado sobre el tema. A continuación os dejo los links.

Por ahora para crear el proyecto de Jenkins, nos vamos a centrar en la aplicación de Test, ya que es el primero que debemos compilar y ejecutar en nuestro proceso (si los test unitarios fallan, ya no hace falta que sigamos con el resto).

Leer más…

Categories: CI, Delphi, Jenkins, TDD Tags: , , , ,

1- Integración continua con Delphi (GIT)

lunes, 4 de noviembre de 2019 3 comentarios

Voy a dedicar varias entradas a hablar de Integración Continua con Delphi (a partir de ahora escribiré en algunos sitios CI –Continuous Integration– para abreviar).

Para no extenderme mucho voy a intentar dividir esta entrada en tres/cuatro entregas. Cada una de ellas centrada en un “pieza” importante de las que vamos repasar. Esta es la idea inicial, pero es posible que a medida que vaya desarrollando las otras, la cosa pueda cambiar.

1- Integración continua con Delphi (GIT)
2- Integración continua con Delphi (Jenkins) – Instalación
3- Integración continua con Delphi (Jenkins) – Primer proyecto
4- Integración continua con Delphi (Jenkins) – Pipelines

image

Una definición de Integración Continua (que puede ser un término muy amplio) podría ser esta:

La integración continua es una práctica de desarrollo de software mediante la cual los desarrolladores combinan los cambios en el código en un repositorio central de forma periódica, tras lo cual se ejecutan pruebas y se generan versiones automáticas.

Es algo así como ir encadenando los diferentes pasos que habitualmente hacemos (o deberíamos hacer manualmente) de una forma automatizada.

VENTAJAS DE LA CI

¿Porqué utilizar Integración continua?

Utilizar esta metodología, como muchas otras, a priori puede generar una sensación de pérdida de tiempo y un trabajo extra, pero a la larga la automatización de tareas suele traer ventajas que al principio pueden no ser evidentes, pero que pasado un tiempo se hacen visibles.

¿Qué nos puede aportar introducir esta metodología en nuestros desarrollos?

  • Obtenemos mejoras en el rendimiento a la hora de desarrollar aplicaciones. Se dedica menos tiempo a tareas manuales y repetitivas. Se evita que con el tiempo se dejen de hacer cosas como las pruebas automáticas, ya que no hay que hacerlas manualmente.
  • Minimiza los errores. Al automatizar tareas, éstas se pueden realizar con más frecuencia. Además, si aparecen errores se detectan con más rapidez y permite corregirlos más rápido.
  • Se generan actualizaciones de nuestro software (builds, compilaciones, releases,…) con mayor rapidez y frecuencia. Se pueden realizar entregas (si son necesarias) de forma más continuada.
  • Documentación e historial de las versiones generadas, resultados de los tests, cambios,…
  • Concede al desarrollo una mayor seguridad y confiabilidad, y eso repercute en la confianza del equipo de trabajo.

Leer más…

Categories: CI, Delphi, GIT, Jenkins, TDD Tags: , , , ,

Test Unitarios; Framework DUnitX (Entrega 4)

martes, 15 de mayo de 2018 Sin comentarios

Completamos con esta entrada la serie sobre test unitarios, centrándonos en el Framework DUnitX, que es el que actualmente embarcadero recomienda y se incluye en las últimas versiones de Delphi.

INTRODUCCION

Como ya he comentado en las entradas anteriores, DUnitX es una evolución de DUnit (y que además recoge ideas de otros paquetes similares como NUnit). Si no lo tenéis en la versión actual de Delphi con la que estáis trabajando, podéis descargarlo desde el repositorio de Github, y deberíais poder instalarlo sin problemas. DUnitX soporta versiones de Delphi 2010 y posteriores.

A continuación os adjunto una tabla con las diferencias más significativas en cuanto a características que DUnitX nos aporta frente a DUnit. (click sobre ella para verla ampliada).

Leer más…

Categories: Delphi, TDD, Test Tags: , , ,

Convertir Test de DUnit a DUnitX (Entrega 3)

lunes, 30 de abril de 2018 Sin comentarios

Con este artículo pensaba completar esta serie referente a pruebas unitarias y a los Frameworks más utilizados en Delphi para realizarlas, pero el tema de conversión y migración de test entre DUnit y DUnitX se ha alargado más de lo esperado, así que para no generar una entrada muy larga y mezclar temas he decidido «partirla» en dos».

De esta forma dejo para la siguiente el Framework DUnitX en profundidad y en esta me he centrado en explicaros cómo migrar los test existentes que tengamos desarrollados en DUnit.

En las últimas versiones de Delphi, DUnitX es el framework que se recomienda usar desde Embarcadero. Veremos que es más flexible y parametrizable que DUnit, aunque si hemos trabajado con DUnit, DUnitX nos será muy familiar en su mayoría de aspectos (es una evolución de DUnit, NUnit y algunos otros…).

Si ya hemos trabajado con DUnit antes que con DUnitX (como hemos hecho en las entradas del blog) podemos «migrar» nuestros test de forma sencilla, ya que existen determinadas Units ya creadas para adaptar nuestros test existentes.

Leer más…

Categories: Delphi, OOP, TDD, Test Tags: , , , ,