PowerShell:
Tests Schreiben
Wie:
PowerShell verfügt nicht über ein eingebautes Testframework, aber Pester, ein beliebtes Drittanbieter-Modul, wird weitgehend verwendet, um Tests zu schreiben und auszuführen. Hier erfahren Sie, wie Sie mit Pester beginnen können, um Ihre PowerShell-Funktionen zu testen.
Zuerst installieren Sie Pester, falls Sie das noch nicht getan haben:
Install-Module -Name Pester -Scope CurrentUser -Force
Betrachten Sie als nächstes eine einfache PowerShell-Funktion, die Sie testen möchten, gespeichert als MyFunction.ps1
:
function Get-MultipliedNumber {
param (
[int]$Number,
[int]$Multiplier = 2
)
return $Number * $Multiplier
}
Um diese Funktion mit Pester zu testen, erstellen Sie ein Testsript mit dem Namen MyFunction.Tests.ps1
. In diesem Skript verwenden Sie Pestersiste Describe
- und It
-Blöcke, um die Testfälle zu definieren:
# Importiere die zu testende Funktion
. .\MyFunction.ps1
Describe "Get-MultipliedNumber Tests" {
It "Multipliziert Zahl mit 2, wenn kein Multiplikator angegeben wird" {
$result = Get-MultipliedNumber -Number 3
$result | Should -Be 6
}
It "Multipliziert Zahl korrekt mit gegebenem Multiplikator" {
$result = Get-MultipliedNumber -Number 3 -Multiplier 3
$result | Should -Be 9
}
}
Um die Tests auszuführen, öffnen Sie PowerShell, navigieren zum Verzeichnis, das Ihr Testskript enthält, und verwenden den Befehl Invoke-Pester
:
Invoke-Pester .\MyFunction.Tests.ps1
Eine beispielhafte Ausgabe sieht folgendermaßen aus und zeigt an, ob Ihre Tests bestanden oder fehlgeschlagen sind:
Starte Entdeckung in 1 Dateien.
Entdeckung abgeschlossen in 152ms.
[+] C:\Pfad\zu\MyFunction.Tests.ps1 204ms (182ms|16ms)
Tests abgeschlossen in 204ms
Tests Bestanden: 2, Fehlgeschlagen: 0, Übersprungen: 0 NichtGelaufen: 0
Diese Ausgabe zeigt, dass beide Tests bestanden haben und gibt Ihnen die Sicherheit, dass Ihre Get-MultipliedNumber
-Funktion unter den getesteten Szenarien wie erwartet funktioniert.