PowerShell:
Pisanie testów

Jak to zrobić:

PowerShell nie ma wbudowanego frameworka do testowania, ale szeroko stosowanym, popularnym modułem zewnętrznym do pisania i uruchamiania testów jest Pester. Oto, jak zacząć używać Pestera do testowania twoich funkcji PowerShell.

Najpierw zainstaluj Pester, jeśli jeszcze tego nie zrobiłeś:

Install-Module -Name Pester -Scope CurrentUser -Force

Następnie, zakładając, że masz prostą funkcję PowerShell, którą chcesz przetestować, zapisaną jako MyFunction.ps1:

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

    return $Number * $Multiplier
}

Aby przetestować tę funkcję za pomocą Pestera, utwórz skrypt testowy o nazwie MyFunction.Tests.ps1. W tym skrypcie użyj bloków Describe i It Pestera, aby zdefiniować przypadki testowe:

# Importuj funkcję do testowania
. .\MyFunction.ps1

Describe "Testy Get-MultipliedNumber" {
    It "Mnoży liczbę przez 2, gdy nie podano mnożnika" {
        $result = Get-MultipliedNumber -Number 3
        $result | Should -Be 6
    }

    It "Poprawnie mnoży liczbę przez podany mnożnik" {
        $result = Get-MultipliedNumber -Number 3 -Multiplier 3
        $result | Should -Be 9
    }
}

Aby uruchomić testy, otwórz PowerShell, przejdź do katalogu zawierającego skrypt testowy i użyj polecenia Invoke-Pester:

Invoke-Pester .\MyFunction.Tests.ps1

Przykładowy wynik będzie wyglądał tak, wskazując, czy twoje testy zakończyły się sukcesem, czy porażką:

Starting discovery in 1 files.
Discovery finished in 152ms.
[+] C:\ścieżka\do\MyFunction.Tests.ps1 204ms (182ms|16ms)
Tests completed in 204ms
Tests Passed: 2, Failed: 0, Skipped: 0 NotRun: 0

Ten wynik pokazuje, że oba testy zakończyły się sukcesem, dając ci pewność, że twoja funkcja Get-MultipliedNumber zachowuje się zgodnie z oczekiwaniami w scenariuszach, które przetestowałeś.