mirror of
https://github.com/Raphire/Win11Debloat.git
synced 2026-07-20 21:10:20 +08:00
50 lines
1.7 KiB
PowerShell
50 lines
1.7 KiB
PowerShell
<#
|
|
.SYNOPSIS
|
|
Runs the Win11Debloat Pester test suite locally.
|
|
|
|
.PARAMETER Bootstrap
|
|
Installs a compatible Pester 5 release for the current user when Pester is
|
|
not already available.
|
|
#>
|
|
[CmdletBinding()]
|
|
param(
|
|
[switch]$Bootstrap
|
|
)
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
$repositoryRoot = Split-Path -Parent $PSScriptRoot
|
|
$testPath = Join-Path $repositoryRoot 'Tests'
|
|
|
|
if (-not (Get-Module -ListAvailable -Name Pester | Where-Object { $_.Version.Major -eq 5 })) {
|
|
if (-not $Bootstrap) {
|
|
Write-Error 'Pester 5 is required. Install it with: .\Scripts\Run-Tests.ps1 -Bootstrap'
|
|
exit 1
|
|
}
|
|
|
|
try {
|
|
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
|
|
|
|
if (-not (Get-PackageProvider -Name NuGet -ListAvailable -ErrorAction SilentlyContinue)) {
|
|
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Scope CurrentUser -Force -Confirm:$false | Out-Null
|
|
}
|
|
|
|
Install-Module -Name Pester -RequiredVersion 5.9.0 -Scope CurrentUser -Force -AllowClobber -Confirm:$false
|
|
}
|
|
catch {
|
|
Write-Error "Unable to install Pester 5: $($_.Exception.Message)"
|
|
exit 1
|
|
}
|
|
|
|
if (-not (Get-Module -ListAvailable -Name Pester | Where-Object { $_.Version.Major -eq 5 })) {
|
|
Write-Error 'Pester 5 was not installed. Update PowerShellGet or install Pester 5 manually, then run the tests again.'
|
|
exit 1
|
|
}
|
|
}
|
|
|
|
Import-Module Pester -MinimumVersion 5.0.0 -MaximumVersion 5.999.999 -Force
|
|
$result = Invoke-Pester -Path $testPath -Output Detailed -PassThru
|
|
|
|
if ($result.Result -ne 'Passed' -or $result.FailedContainersCount -gt 0 -or $result.TotalCount -eq 0) {
|
|
exit 1
|
|
}
|