Skip to content

Commit b49736d

Browse files
Hampson JaredHampson Jared
Hampson Jared
authored and
Hampson Jared
committed
Update HelperModule.psm1 to fix #18
When PowershellGallery is not reachable (e.g. on an airgapped build server), the Find-Module command writes an error message stating that it cannot find the given module (in this case, Pester). This error message caused the Pester extension task to fail when used in an Azure DevOps pipeline, even though the tests would be executed as expected. To fix this, we set errors from Find-Module to be terminating errors so they can be handled by the try/catch block and fall back to the bundled Pester module.
1 parent 1d547bb commit b49736d

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

Extension/PesterTask/PesterV9/HelperModule.psm1

+16-16
Original file line numberDiff line numberDiff line change
@@ -38,32 +38,32 @@ function Import-Pester {
3838
(Get-PSRepository)) {
3939

4040
try {
41-
$null = Get-PackageProvider -Name NuGet -ErrorAction Stop
42-
}
43-
catch {
4441
try {
45-
Install-PackageProvider -Name Nuget -RequiredVersion 2.8.5.208 -Scope CurrentUser -Force -Confirm:$false -ErrorAction Stop
42+
$null = Get-PackageProvider -Name NuGet -ErrorAction Stop
4643
}
4744
catch {
48-
Write-Host "##vso[task.logissue type=warning]Falling back to version of Pester shipped with extension. To use a newer version please update the version of PowerShellGet available on this machine."
49-
Import-Module -Name (Join-Path $PSScriptRoot "4.10.1\Pester.psd1") -Force -Verbose:$false -Global
45+
Install-PackageProvider -Name Nuget -RequiredVersion 2.8.5.208 -Scope CurrentUser -Force -Confirm:$false -ErrorAction Stop
5046
}
51-
}
5247

53-
if ($Version -eq "latest") {
54-
$NewestPester = Find-Module -Name Pester -MaximumVersion 4.99.99 | Sort-Object Version -Descending | Select-Object -First 1
48+
if ($Version -eq "latest") {
49+
$NewestPester = Find-Module -Name Pester -MaximumVersion 4.99.99 -ErrorAction Stop | Sort-Object Version -Descending | Select-Object -First 1
50+
51+
If ((Get-Module Pester -ListAvailable | Sort-Object Version -Descending| Select-Object -First 1).Version -lt $NewestPester.Version) {
52+
Install-Module -Name Pester -RequiredVersion $NewestPester.Version -Scope CurrentUser -Force -Repository $NewestPester.Repository -SkipPublisherCheck
53+
}
54+
}
55+
else {
56+
$NewestPester = Find-Module -Name Pester -RequiredVersion $Version -ErrorAction Stop | Select-Object -First 1
5557

56-
If ((Get-Module Pester -ListAvailable | Sort-Object Version -Descending| Select-Object -First 1).Version -lt $NewestPester.Version) {
5758
Install-Module -Name Pester -RequiredVersion $NewestPester.Version -Scope CurrentUser -Force -Repository $NewestPester.Repository -SkipPublisherCheck
5859
}
59-
}
60-
else {
61-
$NewestPester = Find-Module -Name Pester -RequiredVersion $Version | Select-Object -First 1
6260

63-
Install-Module -Name Pester -RequiredVersion $NewestPester.Version -Scope CurrentUser -Force -Repository $NewestPester.Repository -SkipPublisherCheck
61+
Import-Module -Name Pester -RequiredVersion $NewestPester.Version -Verbose:$false -Global
62+
}
63+
catch {
64+
Write-Host "##vso[task.logissue type=warning]Falling back to version of Pester shipped with extension. To use a newer version please update the version of PowerShellGet available on this machine."
65+
Import-Module -Name (Join-Path $PSScriptRoot "4.10.1\Pester.psd1") -Force -Verbose:$false -Global
6466
}
65-
66-
Import-Module -Name Pester -RequiredVersion $NewestPester.Version -Verbose:$false -Global
6767
}
6868
else {
6969
Write-Host "##vso[task.logissue type=warning]Falling back to version of Pester shipped with extension. To use a newer version please update the version of PowerShellGet available on this machine."

0 commit comments

Comments
 (0)