Public/Get-WatchmenTest.ps1
function Get-WatchmenTest { [cmdletbinding()] param( [parameter(Mandatory, ValueFromPipeline)] [ValidateScript({Test-Path $_})] [string[]]$Path = (Get-Location).Path, [switch]$Recurse ) begin { Write-Debug -Message "Entering: $($PSCmdlet.MyInvocation.MyCommand.Name)" Initialize-Watchmen } process { try { foreach ($loc in $path) { $item = Get-Item -Path (Resolve-Path $loc) if ($item.PSIsContainer) { $files = Get-ChildItem -Path $item -Filter '*.watchmen.ps1' -Recurse:$Recurse $script:watchmen.CurrentWatchmenFileRoot = $item.FullName } else { $files = $item $script:watchmen.CurrentWatchmenFileRoot = $item.Directory } $tests = @() foreach ($file in $files) { Write-Verbose -Message "Loading Watchmen tests from file [$($file.FullName)]" $fileTests = @() $fileTests += . $file.FullName $tests += $fileTests $script:watchmen.TestSets += $fileTests } $tests } } catch { throw $_ # Remove-Variable -Name Watchmen -Scope Global -ErrorAction Ignore } } end { #Remove-Variable -Name Watchmen -Scope Global -ErrorAction Ignore Write-Debug -Message "Exiting: $($PSCmdlet.MyInvocation.MyCommand.Name)" } } |