Buscar

PowerShell: Pester – Verificar un script simple (Parte 3)

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.

El primer paso es crear un script simple que nos servirá de ejemplo:

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

PowerShell: Pester – Verificar un script simple (Parte 3)

* 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

        }
    }
    
}

PowerShell: Pester – Verificar un script simple (Parte 3)

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