tests/general/PSScriptAnalyzer.Tests.ps1
[CmdletBinding()] Param ( [switch] $SkipTest, [string[]] $CommandPath = @("$PSScriptRoot\..\..\functions", "$PSScriptRoot\..\..\internal\functions") ) if ($SkipTest) { return } $list = New-Object System.Collections.ArrayList Describe 'Invoking PSScriptAnalyzer against commandbase' { $commandFiles = Get-ChildItem -Path $CommandPath -Recurse | Where-Object Name -like "*.ps1" $scriptAnalyzerRules = Get-ScriptAnalyzerRule foreach ($file in $commandFiles) { Context "Analyzing $($file.BaseName)" { $analysis = Invoke-ScriptAnalyzer -Path $file.FullName -ExcludeRule PSUseSingularNouns forEach ($rule in $scriptAnalyzerRules) { It "Should pass $rule" { $ruleBreakers = $analysis | Where-Object RuleName -eq $rule $ruleBreakers | ForEach-Object { $list.Add($_) } $ruleBreakers.count | Should Be 0 } } } } } $list | Out-Default |