Pester/Documentation.ps1
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', '')] param($BuildVariables) $ModuleName = $BuildVariables.ModuleName Describe "Public commands have comment-based or external help" { BeforeAll { $functions = Get-Command -Module $ModuleName $help = foreach ($function in $functions) { Get-Help -Name $function.Name } $testCases = foreach ($node in $help) { @{ Name = $node.name Description = $node.Description Synopsis = $node.Synopsis Examples = $node.Examples } } } It "<Name> has a Description or Synopsis" -TestCases $testCases -skip:(!$testCases) { param($Description, $Synopsis) ($Description + $Synopsis) | Should -Not -BeNullOrEmpty } It "<Name> has an Example" -TestCases $testCases -skip:(!$testCases) { param($Name, $Examples) $Examples | Should -Not -BeNullOrEmpty $Examples | Out-String | Should -Match ($Name) } } |