PowerShell:
Skriva tester

Hur man gör:

PowerShell har inte ett inbyggt testramverk, men Pester, en populär tredjepartsmodul, används ofta för att skriva och köra tester. Så här kommer du igång med Pester för att testa dina PowerShell-funktioner.

Först, installera Pester om du inte redan har gjort det:

Install-Module -Name Pester -Scope CurrentUser -Force

Nästa, anta att du har en enkel PowerShell-funktion du vill testa, sparad som MyFunction.ps1:

function Get-MultipliedNumber {
    param (
        [int]$Number,
        [int]$Multiplier = 2
    )

    return $Number * $Multiplier
}

För att testa den här funktionen med Pester, skapa ett testskript med namnet MyFunction.Tests.ps1. I detta skript, använd Pesters Describe och It block för att definiera testfallen:

# Importera funktionen som ska testas
. .\MyFunction.ps1

Describe "Get-MultipliedNumber tester" {
    It "Multiplicerar tal med 2 när ingen multiplikator ges" {
        $result = Get-MultipliedNumber -Number 3
        $result | Should -Be 6
    }

    It "Multiplicerar korrekt tal med angiven multiplikator" {
        $result = Get-MultipliedNumber -Number 3 -Multiplier 3
        $result | Should -Be 9
    }
}

För att köra testerna, öppna PowerShell, navigera till katalogen som innehåller ditt testskript, och använd kommandot Invoke-Pester:

Invoke-Pester .\MyFunction.Tests.ps1

Exempelutmatning kommer se ut så här, vilket indikerar om dina tester har passerat eller misslyckats:

Starting discovery in 1 files.
Discovery finished in 152ms.
[+] C:\path\till\MyFunction.Tests.ps1 204ms (182ms|16ms)
Tester slutförda på 204ms
Tester Passerade: 2, Misslyckades: 0, Hoppade över: 0 EjKörda: 0

Denna utmatning visar att båda testerna har passerat, vilket ger dig förtroende för att din Get-MultipliedNumber funktion beter sig som förväntat under de scenarier du har testat.