> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/de/automatisierung/tests.md).

# Tests

Führen Sie Pester-Testsuiten direkt in PowerShell Universal aus und überprüfen Sie sie, wobei historische Ergebnisse für einzelne Testdateien und vollständige Testläufe verfolgt werden.

> Diese Funktion erfordert eine [Lizenz](/powershell-universal/de/licensing.md).

PowerShell Universal integriert sich mit [Pester](https://pester.dev/), um Testsuiten aus Ihrem Repository auszuführen und deren Ergebnisse aufzubewahren. Verwenden Sie **Run > Tests**, um Testdateien zu erkennen, Läufe zu starten, sie zu planen und historische Ergebnisse zu überprüfen.

## Testerkennung

PowerShell Universal durchsucht das Repository rekursiv nach Dateien mit dem Namen `*.tests.ps1`. Erkannte Dateien erscheinen auf der Registerkarte **Test Files**. Erstellen oder bearbeiten Sie die Dateien unter **Build > Scripts** und aktualisieren Sie anschließend die Testdateien, wenn sich der Repository-Inhalt ändert.

Verwenden Sie die Ordneransicht, um erkannte Testdateien nach ihren Repository-Ordnern zu durchsuchen. Wählen Sie einen Ordner, um die Dateiliste auf diesen Ort zu beschränken, oder wählen Sie **Tests**, um zu allen Dateien zurückzukehren.

## Eine Ausführungsumgebung vorbereiten

Installieren Sie Pester in jeder Ausführungsumgebung, die Tests ausführen soll. Ein Lauf schlägt fehl, wenn `Invoke-Pester` in der ausgewählten Umgebung nicht verfügbar ist.

Für die ausgewählte Ausführungsumgebung konfigurierte Umgebungsvariablen sind während der Ausführung von Pester verfügbar. So können Tests Konfigurationswerte verwenden, ohne sie fest in Testdateien zu codieren. Behandeln Sie sensible Werte als Geheimnisse und rufen Sie sie über die entsprechende PowerShell Universal-Konfiguration ab.

## Tests über die Admin-Konsole ausführen

1. Gehen Sie zu **Run > Tests**.
2. Wählen Sie **Run Test** für eine Datei oder **Run All Tests**, um die erkannten Testdateien auszuführen.
3. Wählen Sie die Anmeldeinformationen, die Ausführungsumgebung und den Computer oder die Computergruppe, die verwendet werden sollen.
4. Wählen Sie **Run**. Der Lauf wird in der Ergebnisansicht geöffnet, während er in der Warteschlange steht oder ausgeführt wird.

Sie können eine einzelne Testdatei, einen Repository-Ordner oder einen Platzhalterpfad ausführen. Wenn ein Ordner ausgewählt ist, führt PowerShell Universal die darin enthaltenen passenden Dateien `*.tests.ps1` und `*.test.ps1` aus.

## Tests mit PowerShell ausführen

Verwenden Sie `Invoke-PSUTest`, um einen Pester-Lauf aus einem Skript, Terminal oder Automatisierungsworkflow zu starten. Übergeben Sie einen Pfad oder ein `TestFile`-Objekt.

```powershell
Invoke-PSUTest -Path '.\tests\api.tests.ps1'
```

Zielen Sie mit Tags, ausgeschlossenen Tags oder vollständigen Testnamen auf eine Teilmenge der Pester-Tests.

```powershell
Invoke-PSUTest -Path '.\tests\api.tests.ps1' `
    -Tag Smoke `
    -ExcludeTag Slow `
    -Test 'API returns 200'
```

Standardmäßig gibt das Cmdlet den neu erstellten Testlauf-Datensatz zurück. Fügen Sie `-Wait` hinzu, um auf einen abgeschlossenen oder fehlgeschlagenen Lauf zu warten. `-Timeout` legt die Wartezeitbegrenzung in Sekunden fest und beträgt standardmäßig 300. Fügen Sie `-IncludeSuite` hinzu, um sowohl den Testlauf als auch die geparsten Testsuite-Details zurückzugeben.

```powershell
$result = Invoke-PSUTest -Path '.\tests\api.tests.ps1' -Wait -IncludeSuite
$result.TestRun
$result.TestSuite
```

Verwenden Sie `-Environment`, wenn die Tests eine bestimmte Ausführungsumgebung erfordern.

## Testläufe planen

Erstellen Sie geplante Pester-Läufe unter **Run > Tests**, indem Sie **Create Schedule** wählen. Tests unterstützen einfache, kontinuierliche, Cron- und einmalige Zeitpläne. Wählen Sie den auszuführenden Testpfad und dieselben Laufoptionen, die für andere geplante Automatisierung verwendet werden, einschließlich Ausführungsumgebung, Anmeldeinformationen und Computereinstellungen.

Geplante Testpfade werden vor der Ausführung gegen das Repository validiert. Halten Sie Pfade innerhalb des Repositorys und stellen Sie sicher, dass die referenzierte Datei, der Ordner oder der Platzhalter zu einer oder mehreren Testdateien auflöst.

## Testergebnisse überprüfen

Jeder Testlauf zeichnet seinen Status, Start- und Endzeiten, Gesamtwerte, Fehlschläge, Fehler, übersprungene Tests und Details zu Ausführungsfehlern auf. PowerShell Universal schreibt die Pester-Ausgabe im NUnit-XML-Format und speichert die geparsten Suite- und Testfallergebnisse, damit sie nach Abschluss des Laufs weiterhin verfügbar bleiben.

Öffnen Sie einen Testlauf unter **Run > Tests > Test Results**, um das Gesamtergebnis zu prüfen und in Suiten und einzelne Fälle einzutauchen. Historische Läufe bleiben für Vergleiche und Fehlerbehebung verfügbar.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/de/automatisierung/tests.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
