tests/manual.pester.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<#
    .SYNOPSIS
        Runs dbatools tests.
 
    .DESCRIPTION
        This file will either run all tests for dbatools or merely run the specified tests.
 
    .PARAMETER Path
        The Path to the test files to run
#>

[CmdletBinding()]
Param (
    [string[]]
    $Path,

[ValidateSet('None', 'Default', 'Passed', 'Failed', 'Pending', 'Skipped', 'Inconclusive', 'Describe', 'Context', 'Summary', 'Header', 'All', 'Fails')]
[string]
$Show = "All",

[switch]
$TestIntegration,
    
    [switch]
    $SkipHelpTest
)
Write-Host -Object "Running $PSCommandpath" -ForegroundColor Cyan
$ModuleBase = Split-Path -Path $PSScriptRoot -Parent
if (Get-Module dbatools) { Remove-Module dbatools }

Write-Host "Importing: $ModuleBase\dbatools.psm1"
Import-Module "$ModuleBase\dbatools.psm1" -DisableNameChecking
$ScriptAnalyzerRules = Get-ScriptAnalyzerRule

. $PSScriptRoot\..\internal\Write-Message.ps1
. $PSScriptRoot\..\internal\Stop-Function.ps1

$testInt = $false
if ($config_TestIntegration) { $testInt = $true }
if ($TestIntegration) { $testInt = $true }

if ($Path)
{
    foreach ($item in $Path)
    {
if ($testInt) { Invoke-Pester $item }
        else { Invoke-Pester $item -ExcludeTag "IntegrationTests" -Show $Show }
    }
}

else
{
    if ($testInt) { Invoke-Pester }
else { Invoke-Pester -ExcludeTag "IntegrationTests" -Show $Show }
}