noid-privacy/Tests/Setup-TestEnvironment.ps1
NexusOne23 da9f937ee8 release: v2.2.3 - Fix Restore Mode module selection crash
CHANGELOG:
- Fixed: Restore Mode manual module selection crash (Critical)
- Root cause: .Split(',', ';', ' ') triggered wrong .NET overload
- Fix: Replaced with native PowerShell -split '[,; ]' operator
- Reported by: KatCat2

VERSION BUMP: 2.2.2 -> 2.2.3
- Updated 48 files with new version number
- CHANGELOG.md: Added v2.2.3 release notes
- README.md: Updated badge, module table, project status
2026-01-07 18:46:14 +01:00

88 lines
2.6 KiB
PowerShell

<#
.SYNOPSIS
Setup Pester testing environment for NoID Privacy
.DESCRIPTION
Installs and configures Pester v5 testing framework.
Creates sample test structure for all modules.
.NOTES
Author: NexusOne23
Version: 2.2.3
Requires: PowerShell 5.1+
.EXAMPLE
.\Setup-TestEnvironment.ps1
Install Pester and setup test structure
#>
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]
[switch]$SkipPesterInstall
)
Write-Host "NoID Privacy - Test Environment Setup" -ForegroundColor Cyan
Write-Host "=========================================" -ForegroundColor Cyan
Write-Host ""
# Check PowerShell version
if ($PSVersionTable.PSVersion.Major -lt 5) {
Write-Host "ERROR: PowerShell 5.1 or higher required" -ForegroundColor Red
exit 1
}
# Install/Update Pester
if (-not $SkipPesterInstall) {
Write-Host "Checking Pester installation..." -ForegroundColor Yellow
$pesterModule = Get-Module -Name Pester -ListAvailable | Sort-Object Version -Descending | Select-Object -First 1
if ($null -eq $pesterModule -or $pesterModule.Version -lt [Version]"5.0.0") {
Write-Host "Installing Pester v5..." -ForegroundColor Yellow
try {
Install-Module -Name Pester -Force -SkipPublisherCheck -Scope CurrentUser -MinimumVersion 5.0.0
Write-Host "[OK] Pester v5 installed successfully" -ForegroundColor Green
}
catch {
Write-Host "[ERROR] Failed to install Pester: $_" -ForegroundColor Red
exit 1
}
}
else {
Write-Host "[OK] Pester v$($pesterModule.Version) already installed" -ForegroundColor Green
}
}
# Create test directories
Write-Host ""
Write-Host "Creating test directory structure..." -ForegroundColor Yellow
$testRoot = $PSScriptRoot
$directories = @(
"Unit",
"Integration",
"Validation",
"Results"
)
foreach ($dir in $directories) {
$path = Join-Path $testRoot $dir
if (-not (Test-Path -Path $path)) {
New-Item -ItemType Directory -Path $path -Force | Out-Null
Write-Host "[OK] Created: $dir/" -ForegroundColor Green
}
else {
Write-Host "[OK] Exists: $dir/" -ForegroundColor Gray
}
}
Write-Host ""
Write-Host "Test environment setup complete!" -ForegroundColor Green
Write-Host ""
Write-Host "Next steps:" -ForegroundColor Cyan
Write-Host " 1. Run tests: .\Run-Tests.ps1" -ForegroundColor White
Write-Host " 2. Create module tests in Tests/Unit/" -ForegroundColor White
Write-Host " 3. View results in Tests/Results/" -ForegroundColor White
Write-Host ""