Built base module structure
This commit is contained in:
29
Tests/Help.Tests.ps1
Normal file
29
Tests/Help.Tests.ps1
Normal file
@@ -0,0 +1,29 @@
|
||||
$projectRoot = Resolve-Path "$PSScriptRoot\.."
|
||||
$moduleRoot = Split-Path (Resolve-Path "$projectRoot\*\*.psm1")
|
||||
$moduleName = Split-Path $moduleRoot -Leaf
|
||||
|
||||
Import-Module (Join-Path $moduleRoot "$moduleName.psm1") -force
|
||||
|
||||
Describe "Help tests for $moduleName" -Tags Build {
|
||||
|
||||
$functions = Get-Command -Module $moduleName
|
||||
$help = $functions | %{Get-Help $_.name}
|
||||
foreach($node in $help)
|
||||
{
|
||||
Context $node.name {
|
||||
|
||||
it "has a description" {
|
||||
$node.description | Should Not BeNullOrEmpty
|
||||
}
|
||||
it "has an example" {
|
||||
$node.examples | Should Not BeNullOrEmpty
|
||||
}
|
||||
foreach($parameter in $node.parameters.parameter)
|
||||
{
|
||||
it "parameter $($parameter.name) has a description" {
|
||||
$parameter.Description.text | Should Not BeNullOrEmpty
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
25
Tests/Project.Tests.ps1
Normal file
25
Tests/Project.Tests.ps1
Normal file
@@ -0,0 +1,25 @@
|
||||
$projectRoot = Resolve-Path "$PSScriptRoot\.."
|
||||
$moduleRoot = Split-Path (Resolve-Path "$projectRoot\*\*.psd1")
|
||||
$moduleName = Split-Path $moduleRoot -Leaf
|
||||
|
||||
Describe "General project validation: $moduleName" -Tags Build {
|
||||
|
||||
$scripts = Get-ChildItem $projectRoot -Include *.ps1,*.psm1,*.psd1 -Recurse
|
||||
|
||||
# TestCases are splatted to the script so we need hashtables
|
||||
$testCase = $scripts | Foreach-Object{@{file=$_}}
|
||||
It "Script <file> should be valid powershell" -TestCases $testCase {
|
||||
param($file)
|
||||
|
||||
$file.fullname | Should Exist
|
||||
|
||||
$contents = Get-Content -Path $file.fullname -ErrorAction Stop
|
||||
$errors = $null
|
||||
$null = [System.Management.Automation.PSParser]::Tokenize($contents, [ref]$errors)
|
||||
$errors.Count | Should Be 0
|
||||
}
|
||||
|
||||
It "Module '$moduleName' can import cleanly" {
|
||||
{Import-Module (Join-Path $moduleRoot "$moduleName.psm1") -force } | Should Not Throw
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user