From 8e10ae26fd83b99a15758abaa1a148106113514d Mon Sep 17 00:00:00 2001 From: nohwnd Date: Wed, 1 Jul 2026 23:43:04 +0200 Subject: [PATCH] Also fail on Pester block/container failures, not just failed tests In Pester 5 a run has three independent failure counts. Gating only on FailedCount misses FailedBlocksCount (BeforeAll/AfterAll) and FailedContainersCount (files that fail to discover/load), so a failing BeforeAll or an unloadable test file passes the build green. This adds those counts to the gate. Generated with AI (GitHub Copilot CLI). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- Scripts/Invoke-QuickTest.ps1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Scripts/Invoke-QuickTest.ps1 b/Scripts/Invoke-QuickTest.ps1 index fe585e4..059bdf5 100644 --- a/Scripts/Invoke-QuickTest.ps1 +++ b/Scripts/Invoke-QuickTest.ps1 @@ -209,7 +209,7 @@ if ($IncludeAnalyzer) { # --- Build output --- $failedTests = @() -if ($results.FailedCount -gt 0) { +if (($results.FailedCount + $results.FailedBlocksCount + $results.FailedContainersCount) -gt 0) { $failedTests = @($results.Failed | ForEach-Object { $relativePath = if ($_.ScriptBlock.File) { $_.ScriptBlock.File -replace [regex]::Escape($ProjectRoot + [IO.Path]::DirectorySeparatorChar), '' @@ -226,10 +226,10 @@ if ($results.FailedCount -gt 0) { $totalDuration = '{0:N2}s' -f $results.Duration.TotalSeconds -$success = ($results.FailedCount -eq 0) -and ($analyzerErrors.Count -eq 0) +$success = (($results.FailedCount + $results.FailedBlocksCount + $results.FailedContainersCount) -eq 0) -and ($analyzerErrors.Count -eq 0) $summaryParts = @() if ($results.PassedCount -gt 0) { $summaryParts += "$($results.PassedCount) passed" } -if ($results.FailedCount -gt 0) { $summaryParts += "$($results.FailedCount) failed" } +if (($results.FailedCount + $results.FailedBlocksCount + $results.FailedContainersCount) -gt 0) { $summaryParts += "$($results.FailedCount) failed" } if ($results.SkippedCount -gt 0) { $summaryParts += "$($results.SkippedCount) skipped" } $summaryText = if ($success) { "PASSED ($($summaryParts -join ', '))" } else { "FAILED ($($summaryParts -join ', '))" } @@ -259,7 +259,7 @@ else { Write-Host "=== QUICK TEST: $label ===" -ForegroundColor Cyan # Failed test details - if ($results.FailedCount -gt 0) { + if (($results.FailedCount + $results.FailedBlocksCount + $results.FailedContainersCount) -gt 0) { Write-Host "" Write-Host "FAILED TESTS:" -ForegroundColor Red foreach ($ft in $failedTests) {