Archivo

Entradas Etiquetadas ‘TDD’

RAD Studio Live 2023 (Integración Continua)

miércoles, 15 de marzo de 2023 Sin comentarios

El pasado 28 de Febrero se celebró el RAD Studio Live 2023 en Español.

Ya comenté sobre él y las diferentes charlas en la anterior entrada.

Por si no pudisteis asistir o por si queréis ver de nuevo alguno de los vídeos, ya se han publicado en el canal de Youtube de Embarcadero Latinoamérica.

La referente a «Integración continua con Delphi», que presenté yo mismo, también la podéis ver (formato original) en mi canal de youtube.

Igualmente aquí tenéis los enlaces individuales a los vídeos de la 4 charlas:

Espero que disfrutéis de todas ellas.

4- Integración continua con Delphi (Jenkins) – Pipelines

lunes, 4 de mayo de 2020 Sin comentarios

Imagen relacionadaHasta ahora ya hemos visto cómo crear Jobs en Jenkins. Partiendo del que hicimos en la última entrada ya podemos extenderlo (ya sea en un único job o en varios) para conseguir el proceso completo de compilar nuestro proyecto, incluyendo obtener el código GIT, compilar el proyecto y el correspondiente de test unitarios, ejecutar las pruebas y enviar resultados vía email.

Esto sería el “pack” básico, pero a partir de ahí podemos extenderlo según las necesidades. Podríamos desplegar versiones, compilar diferentes ramas desde nuestro repositorio, subir los proyectos a un servidor de preproducción, a un FTP, enviar resultados y comunicados, estadísticas,… y un sinfín de opciones.

Antes de continuar, os adjunto los links de las entradas anteriores:

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

INTRODUCCIÓN A LAS PIPELINES

Las pipelines de Jenkins vienen a ser una evolución de los jobs. En una pipeline se definen los diferentes pasos/operaciones del trabajo que vamos a realizar. Algo similar a como hemos hecho anteriormente en un Job, sólo que aquí tenemos mucha más libertad para definirlos.

Las pipelines al final no son más que un programa (escrito en Groovy) que puedes guardar en un fichero (o en un repositorio de código), por lo tanto podemos tener “versionado” de nuestros trabajos, al igual que hacemos con nuestro código. Esta es sólo una de las ventajas de las pipelines, algunas más las iré comentando a lo largo de esta entrada.

Integración continua con jenkins

Leer más…

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

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: , , , ,

2- Integración continua con Delphi (Jenkins)-Instalación

domingo, 8 de diciembre de 2019 3 comentarios

imageEn la anterior entrada empezamos con el tema de Integración continua. Vimos cómo crear y trabajar por encima con repositorios GIT.

A continuación os adjunto 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

Una vez visto el paso previo de GIT, lo siguiente que necesitamos  en “montar” nuestro servidor de automatización. Para ello he escogido Jenkins. Jenkins en un “Servidor de Automatización” Open Source escrito en java y que está basado en Hudson.

Admite herramientas de control de versiones como CVS, Subversion, Git, Mercurial, Perforce y Clearcase y puede ejecutar proyectos basados en Apache Ant y Apache Maven, así como secuencias de comandos de consola y programas por lotes de Windows.

A continuación vamos a ver los pasos necesarios para instalar y configurar Jenkins.

INSTALACIÓN DE JENKINS

Una vez descargado el paquete correspondiente a nuestro sistema, comenzamos la instalación. Actualmente está disponible la versión v2.202, pero la verdad es que tanto las actualizaciones del sistema, como la de los múltiples plugins que posee son muy frecuentes.

image

Captura_2019-10-31 08_54_05

Jenkins se instala como un servicio de Windows y la instalación no tiene más opciones que el directorio de destino, que podemos dejar el que propone por defecto. El acceso se realiza a través de un navegador web y utiliza por defecto el puerto 8080.

Una vez finalizada la instalación podemos comprobar que la consola de Servicios de Windows que se ha instalado correctamente y que está “Iniciado”. Se abrirá una ventana del navegador a la dirección:   http://localhost:8080/

Leer más…

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

Entornos de ejecución de test con DUnitX (Bonus track)

martes, 26 de junio de 2018 Sin comentarios

Con la anterior entrada del blog completamos la serie sobre test unitarios y los frameworks a utilizar con Delphi, con una visión general sobre DUnitX. A continuación tenéis los links a las entradas de la serie.

Esta última no estaba prevista inicialmente, pero la última ya era bastante extensa y no quise mezclar con el tema de DUnitX este “Bonus track”. Digamos que esta es como un apéndice a la serie.

DUnitX permite ejecutar los test que diseñamos utilizando diferentes salidas. Digamos que el programa de ejecución de test puede estar diseñado en “modo consola”, utilizando un ejecutable VCL o generando un programa FMX. No hablamos de los test en sí, sino del programa que nos muestra la salida y los resultados de la ejecución.

A continuación vamos a repasar casda uno de ellos.

Leer más…

Categories: Delphi, TDD, Unit test 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: , , , ,

Test Unitarios; Framework DUnit (Entrega 2)

jueves, 1 de febrero de 2018 2 comentarios

Esta es la segunda entrada de la serie dedicada a pruebas unitarias. Si en la primera vimos una introducción a la programación guiada por pruebas, en esta segunda vamos a empezar a revisar los frameworks disponibles que nos ayudan a realizar los test unitarios.

Concretamente en esta nos centraremos en DUnit.

Para realizar Test unitarios con Delphi disponemos de dos frameworks; Según la versión de Delphi podemos utilizarlos indistintamente, aunque a partir de la versión XE8 de Delphi, se recomienda utilizar DUnitX.

CREACIÓN DE PRUEBAS UNITARIAS (FRAMEWORKS)

Para realizar test unitarios con Delphi podemos utilizar los frameworks (ambos Open Source) DUnit y DUnitX.

A partir de la versión Delphi XE8 Embarcadero recomienda utilizar DUnitX, ya que DUnit ha quedado desactualizado. Si se ha trabajado con DUnit es relativamente fácil migrar los test ya existentes a DUnitX.

Lo que vamos a hacer es realizar los test con ambos paquetes y de esta forma también podremos ver las diferencias entre ambos y las ventajas prácticas que nos pueden aportar.

FRAMEWORK DUNIT

Para crear nuestro proyecto de pruebas unitarias que testee la clase TAritmeticaBasica de nuestra unit UClass.TAritmeticaBasica, podemos utilizar el asistente que ya trae el paquete. Si en nuestra versión de delphi no está instalado este paquete (DUnit), hay que descargarlo (de la dirección que hay más arriba) e instalarlo.

  1. Lo primero es crear un proyecto que utilice nuestra Unit. Sería nuestra aplicación que va a utilizar esta unit. Para ello crearemos un nuevo proyecto llamado PAritmeticaBasica y le añadiremos la unit anterior.
  2. A continuación vamos a generar, utilizando el asistente, el proyecto para las pruebas unitarias (y lo añadiremos al mismo grupo de proyectos). De esta forma tendremos nuestro proyecto y junto a el el proyecto de pruebas.

 

Leer más…

Categories: Código, Delphi, Test Tags: , ,