@@ -98,7 +98,7 @@ function Invoke-ManualPester {
98
98
[switch ]$ScriptAnalyzer
99
99
)
100
100
begin {
101
- Remove-Module - Name Pester
101
+ Remove-Module - Name Pester - ErrorAction SilentlyContinue
102
102
$stopProcess = $false
103
103
function Get-CoverageIndications ($Path , $ModuleBase ) {
104
104
# takes a test file path and figures out what to analyze for coverage (i.e. dependencies)
@@ -140,8 +140,7 @@ function Invoke-ManualPester {
140
140
141
141
function Get-PesterTestVersion ($testFilePath ) {
142
142
$testFileContent = Get-Content - Path $testFilePath - Raw
143
- if ($testFileContent -match ' #Requires\s+-Module\s+@\{\s+ModuleName="Pester";\s+ModuleVersion="5\.' )
144
- {
143
+ if ($testFileContent -match ' #Requires\s+-Module\s+@\{\s+ModuleName="Pester";\s+ModuleVersion="5\.' ) {
145
144
return ' 5'
146
145
}
147
146
return ' 4'
@@ -180,7 +179,7 @@ function Invoke-ManualPester {
180
179
Write-Warning " or go to https://github.com/PowerShell/PSScriptAnalyzer"
181
180
} else {
182
181
if ($invokeFormatterVersion -ne $ScriptAnalyzerCorrectVersion ) {
183
- Remove-Module PSScriptAnalyzer
182
+ Remove-Module PSScriptAnalyzer - ErrorAction SilentlyContinue
184
183
try {
185
184
Import-Module PSScriptAnalyzer - RequiredVersion $ScriptAnalyzerCorrectVersion - ErrorAction Stop
186
185
} catch {
@@ -214,7 +213,7 @@ function Invoke-ManualPester {
214
213
215
214
216
215
}
217
- process {
216
+ process {
218
217
if ($stopProcess ) {
219
218
return
220
219
}
@@ -237,6 +236,9 @@ function Invoke-ManualPester {
237
236
Write-DetailedMessage " Importing dbatools psm1"
238
237
Import-Module " $ModuleBase \dbatools.psm1" - DisableNameChecking - Force - NoClobber
239
238
239
+ Write-DetailedMessage " Reading test configuration"
240
+ $TestConfig = Get-TestConfig
241
+
240
242
$ScriptAnalyzerRulesExclude = @ (' PSUseOutputTypeCorrectly' , ' PSAvoidUsingPlainTextForPassword' , ' PSUseBOMForUnicodeEncodedFile' )
241
243
242
244
$testInt = $false
@@ -293,11 +295,11 @@ function Invoke-ManualPester {
293
295
294
296
if ($pesterVersionToUse -eq ' 5' ) {
295
297
Write-DetailedMessage " Running Pester 5 tests $ ( $f.Name ) "
296
- Remove-Module - Name pester - ErrorAction SilentlyContinue
297
- Import-Module pester - MinimumVersion 5.6 .1 - ErrorAction Stop
298
+ Remove-Module - Name Pester - ErrorAction SilentlyContinue
299
+ Import-Module Pester - MinimumVersion 5.6 .1 - ErrorAction Stop
298
300
$pester5Config = New-PesterConfiguration
299
301
$pester5Config.Run.Path = $f.FullName
300
- if ($PassThru ){
302
+ if ($PassThru ) {
301
303
$pester5config.Run.PassThru = $passThru
302
304
}
303
305
$pester5config.Output.Verbosity = $show
@@ -309,9 +311,10 @@ function Invoke-ManualPester {
309
311
$pester5Config.Filter.ExcludeTag = " IntegrationTests"
310
312
}
311
313
Invoke-Pester - Configuration $pester5config
312
- }
313
- else {
314
+ } else {
314
315
Write-DetailedMessage " Running Pester 4 tests $ ( $f.FullName ) "
316
+ Remove-Module - Name Pester - ErrorAction SilentlyContinue
317
+ Import-Module Pester - MaximumVersion 4.99 - ErrorAction Stop
315
318
$pester4Show = ' Default'
316
319
switch ($Show ) {
317
320
' None' { $pester4Show = ' None' }
@@ -324,8 +327,7 @@ function Invoke-ManualPester {
324
327
' Show' = $pester4Show
325
328
' PassThru' = $passThru
326
329
}
327
- if ($Coverage )
328
- {
330
+ if ($Coverage ) {
329
331
$PesterSplat [' CodeCoverage' ] = $CoverFilesPester
330
332
}
331
333
if (! ($testInt )) {
0 commit comments