PSPocs.Tests.ps1
# =========================================================================== # PSPocs.Tests.ps1 -------------------------------------------------------- # =========================================================================== # settings ---------------------------------------------------------------- # --------------------------------------------------------------------------- $path = $MyInvocation.MyCommand.Path $name = [System.IO.Path]::GetFileNameWithoutExtension($path) $Module = New-Object -TypeName PSObject -Property @{ Name = $name Dir = Split-Path -Path $path -Parent Config = Get-ConfigProjectFile -Name $name } # get module name and directory $Script:moduleName = "PSPocs" $Script:Dir = Split-Path -Path $MyInvocation.MyCommand.Path -Parent # set test flag $Env:PSPocs = 1 # execute file with the specific module settings . (Join-Path -Path $Script:Dir -ChildPath ($Script:moduleName + ".Module.ps1")) # load essential functions . $Module.FunctionsFile # test environment -------------------------------------------------------- # --------------------------------------------------------------------------- # module test ------------------------------------------------------------- # --------------------------------------------------------------------------- # test general settings of module Describe -Tags 'ModuleSettings' "$Script:moduleName manifest" { It "has a valid module name" { Test-Path -Path $Module.Name | Should Not BeNullOrEmpty } It "has a valid directory" { { Test-Path -Path $Module.Dir } | Should Not Throw } It "has a valid function directory" { { Test-Path -Path $Module.FunctionsDir } | Should Not Throw } It "has a valid test directory" { { Test-Path -Path $Module.TestsDir } | Should Not Throw } It "has a valid configuration file" { { Test-Path -Path $Module.Config } | Should Not Throw } It "has a valid module scrip" { { Test-Path -Path $Module.ModuleFile } | Should Not Throw } It "has a valid functions script" { { Test-Path -Path $Module.FunctionsFile } | Should Not Throw } } # tests ------------------------------------------------------------------- # --------------------------------------------------------------------------- # invoke all scripts below listed with pester Get-ChildItem -Path $Module.TestsDir -Filter "*.ps1" | ForEach-Object { Invoke-Pester -Script $_.FullName } # end of tests ------------------------------------------------------------ # --------------------------------------------------------------------------- $Env:PSPocs = $Null |