Buscar

PowerShell: Pester - Introducción - (Parte 1)

PowerShell: Pester – Introducción – ¿Qué es?

Pester es un módulo de PowerShell (por lo tanto escrito en PowerShell) que proporciona un framework de verificación.

La idea es que cada vez que alguien realiza un cambio en el código de un script de PowerShell, el script se someta de forma automática a una serie de pruebas.

PowerShell: Pester – Introducción – ¿Por qué utilizarlo?

Para entender por qué es necesario utilizar Pester para nuestros scripts de PowerShell, veamos los distintos problemas que nos podemos encontrar cuando realizamos e implementamos scripts:

Cuando trabajamos con scripting, solemos trabajar con un entorno de producción y un entorno de pruebas, en el entorno de pruebas desarrollamos y probamos nuestro script.

El problema es que aunque tengamos un entorno de pruebas, muchas veces los errores se acaban encontrando en el entorno productivo.

También ocurre que se acaban corrigiendo estos scripts en el entorno productivo que es donde están fallando.

Otro problema sucede cuando ampliamos un script: Disponemos de un script que tiene ciertas funcionalidades y procedemos a añadir nuevas funcionalidades, a continuación nos encontramos en que funcionalidades que funcionaban con anterioridad sin problemas, dejan de funcionar, es decir hemos realizado cambios en el script que tienen más afectación de la que pensábamos en un inicio.

Para intentar evitar esta serie de problemas, disponemos de las pruebas unitarias para verificar código: (Unit Tests) {https://es.wikipedia.org/wiki/Prueba_unitaria}

Muchos administradores de sistemas tienden a pensar que las pruebas unitarias y las pruebas de integración {https://es.wikipedia.org/wiki/Prueba_de_integraci%C3%B3n} son sólo para proyectos de desarrollo de software y no para el scripting.

Las pruebas unitarias y las pruebas de integración son un requisito mínimo de calidad para cualquier desarrollo, pequeños scripts incluidos.

Todo el mundo debería verificar su código y debería tener un entorno de desarrollo para hacerlo. 

Todo este tiempo invertido en estructurar el y definir el script, así como pasar las pruebas se compensa a la hora de detectar y corregir errores.

En esta serie de posts vamos a ver como verificar nuestros scripts de PowerShell mediante la herramienta Pester {https://github.com/pester/Pester}

PowerShell: Pester - Pruebas unitarias (unit tests) y tests de integración:

En el punto anterior vimos que es Pester de PowerShell y para qué sirve.

En este apartado veremos dos conceptos previos que necesitamos tener claros antes de empezar a trabajar con Pester: Las pruebas unitarias y los test de integración.

Pruebas unitarias:

En términos muy generales podríamos decir que es donde se prueba un fragmento concreto de código de forma aislada e independiente.

Se proporcionan varias entradas y se verifican sus salidas.

La prueba unitaria prueba el código y la prueba de integración prueba cómo el código funciona una vez implementado.

La idea es escribir casos de prueba para cada función, método, objeto… de forma que cada caso sea independiente del resto. Luego, con las pruebas de integración, se podrá asegurar el correcto funcionamiento del sistema o subsistema en cuestión.

Por ejemplo, si estuviéramos verificando una función llamada “New-Cajón” deberíamos verificar:

- Que devuelva algún objeto tipo “Cajón”
- Que tenga exactamente cuatro esquinas
- Que tenga dos raíles
- Que tenga un tirador
- Que sea del color deseado
- Que sea de las medidas correctas…

Pruebas de integración:

Si las pruebas unitarias prueban cada pedazo de código por separado las pruebas de integración prueban que todos los elementos que funcionan por separado también sean capaces de funcionar coordinadamente una vez integrados.

Pruebas unitarias VS pruebas de integración:

Siguiendo el ejemplo anterior, queremos probar que los cajones generados por la función “New-Cajón” sean capaces de funcionar en el entorno:

PowerShell: Pester - Introducción - (Parte 1)

Resultado de las pruebas unitarias: OK!
Resultado de las pruebas de integración: KO!

El autor de este post es: Pol Padrisa

Posts de la serie PowerShell - Pester:

PowerShell: Pester - Introducción - (Parte 1) - (SYSADMIT.com)

PowerShell: Pester - Instalación - (Parte 2) - (SYSADMIT.com)

PowerShell: Pester - Verificar un script simple (Parte 3) - (SYSADMIT.com) 

PowerShell: Pester – Bloques "Before" y "After" (Parte 4) - (SYSADMIT.com)

PowerShell: Pester - Unidades virtuales (Parte 5) - (SYSADMIT.com) 

No hay comentarios:

Publicar un comentario