Нет встроенной функции для прерывания выполнения теста, когда в данный момент происходит сбой, но это обсуждалось здесь: https://github.com/pester/Pester/issues/360 с некоторыми ошибками, такими как этот:
BeforeEach {
$FailedCount = InModuleScope -ModuleName Pester { $Pester.FailedCount }
if ($FailedCount -gt 0) {
Set-ItResult -Skipped -Because 'previous test failed'
}
}
Другой вариант - разбить ваши тесты на несколько разных скриптов Pester. Затем у вас может быть несколько высокоуровневых или начальных тестов, которые вы сначала проверяете на успешность, и если они не все прошли, вы пропускаете выполнение оставшихся тестовых скриптов.
Например:
$Failed = (Invoke-Pester -Path First.tests.ps1 -PassThru).FailedCount
If ($Failed -eq 0) {
Invoke-Pester -Path Second.tests.ps1
..
}