Como hemos visto en la primera parte de la serie de artículos sobre PowerShell - Pester:
PowerShell: Pester - Introducción - (Parte 1) - (SYSADMIT.com)
PowerShell: Pester - Instalación - (Parte 2) - (SYSADMIT.com)
Pester es un módulo de PowerShell (por lo tanto escrito en PowerShell) que proporciona un framework de verificación.
Se utiliza para verificar que los scripts hagan aquello que deberían hacer.
La idea es facilitar la detección de errores y problemas antes de llegar a producción.
En este post vamos a ver cómo hacer una verificación simple de un script básico.
PowerShell: Pester – Verificar un script simple: Creación del Script
Creamos un fichero de texto llamado: New-ArchivoFalso.ps1
Con el contenido:
[CmdletBinding()]
param(
[Parameter()]
[string]$RutaArchivoFalso
)
New-Item -Path $RutaArchivoFalso -ItemType File -Force
El script es muy sencillo: Pasando el parámetro -RutaArchivoFalso nos creará un fichero con el nombre establecido.
Verifiquemos que el script funciona:
.\New-ArchivoFalso.ps1 -RutaArchivoFalso test.txt
* NOTA: si aparece este error: “No se puede cargar el archivo C:\scripts\New-ArchivoFalso.ps1 es porque la ejecución de scripts está deshabilitada en este equipo…”
Debemos habilitar la ejecución de scripts para realizar este laboratorio ejecutando lo siguiente:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Una vez verificado que el script funciona debemos crear la pruebas unitarias mediante Pester.
PowerShell: Pester – Verificar un script simple: Creación de pruebas unitarias con Pester
Crearemos un fichero de texto llamado: New-ArchivoFalso.Tests.ps1 Los lectores más atentos ya se habrán dado cuenta de que el nombre del fichero es el mismo nombre que el del script a verificar añadiendo .Tests antes de la extensión. Esta nomenclatura no es obligada pero es una convención.
Nombre del fichero:
New-ArchivoFalso.Tests.ps1
Contenido:
Describe 'New-ArchivoFalso' {
Context 'Cuando el archivo falso NO existe' {
#Eliminamos el fichero (si lo hubiera).
$null = Remove-Item -Path '~\1.txt' -ErrorAction Ignore
#Lanzamos el script para que cree el fichero.
$null = .\New-ArchivoFalso.ps1 -RutaArchivoFalso '~\1.txt'
It 'crea el archivo nuevo' {
#Verificamos que el archivo exista vía Test-path.
Test-Path -Path '~\1.txt' | Should -Be $true
}
}
}
En el apartado "Describe" describimos qué estamos probando, podemos poner cualquier cosa pero es una buena práctica ser descriptivo.
En el apartado opcional de "Context" describimos qué situación estamos verificando.
El apartado "Context" es opcional y de hecho podríamos escribir cualquier cosa, pero es una buena recomendación empezar con ‘Cuando xxxxx’
En el bloque It es la prueba en concreto dentro del contexto, en este caso, en el caso de que se tenga que crear el archivo.
Dentro del apartado "It" es dónde en la mayoría de situaciones deberían de realizarse todas las pruebas.
Con este pequeño ejemplo tendríamos una base para probar nuestros scripts de PowerShell.
Os animamos a intentar reproducir estas pruebas en vuestros laboratorios y una vez consolidados los conceptos empezar a verificar vuestros propios scripts.
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