Как указать, что делать, если утверждение Pester терпит неудачу? - PullRequest
2 голосов
/ 05 августа 2020
• 1000 *
{1 | should be 1} else {break}

вместо

1 | should be 1
if (1 -ne 1) {break}

1 Ответ

3 голосов
/ 05 августа 2020

Нет встроенной функции для прерывания выполнения теста, когда в данный момент происходит сбой, но это обсуждалось здесь: 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
    ..
}
...