mirror of
https://github.com/Raphire/Win11Debloat.git
synced 2026-08-23 08:02:07 +00:00
Add comprehensive test suite, fix minor issues, rename function and file names to match approved verbs (#708)
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
<#
|
||||
.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
|
||||
}
|
||||
Reference in New Issue
Block a user