Skip to content

Commit 0b742d6

Browse files
authored
Remove pre-installed Pester module (#25304)
1 parent 08f4500 commit 0b742d6

File tree

2 files changed

+47
-12
lines changed

2 files changed

+47
-12
lines changed

tools/TestFx/EnvironmentSetupHelper.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -538,9 +538,14 @@ public virtual Collection<PSObject> RunPowerShellTest(params string[] scripts)
538538
output = powershell.Invoke();
539539
watch.Stop();
540540

541-
var resultFormatting = watch.ElapsedMilliseconds < 5000 ? "##[section]" : "##[warning]";
542-
543-
Console.WriteLine($"{resultFormatting}Test {testName} completed in {watch.ElapsedMilliseconds}ms");
541+
if (watch.ElapsedMilliseconds < 5000)
542+
{
543+
Console.WriteLine($"INFO : Test {testName} completed in {watch.ElapsedMilliseconds}ms");
544+
}
545+
else
546+
{
547+
Console.WriteLine($"##[warning]WARNING : Test {testName} completed in {watch.ElapsedMilliseconds}ms");
548+
}
544549

545550
if (powershell.Streams.Error.Count > 0)
546551
{

tools/TestFx/Utilities/CommonUtility.ps1

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,49 @@ function RemovePreInstalledModule {
22
[CmdletBinding()]
33
param(
44
[Parameter(Mandatory, Position = 0)]
5-
[Alias("ModuleName")]
65
[ValidateNotNullOrEmpty()]
7-
[string] $Name
6+
[hashtable] $ModuleToRemove
87
)
98

10-
# Remove Az modules
11-
Get-Module -Name $Name* -ListAvailable | ForEach-Object {
12-
$moduleDirectory = $_.Path | Split-Path | Split-Path
13-
if (Test-Path -LiteralPath $moduleDirectory) {
14-
Remove-Item -LiteralPath $moduleDirectory -Recurse -Force
9+
$ModuleToRemove.Keys | ForEach-Object {
10+
$moduleName = $_
11+
$moduleVersion = $ModuleToRemove[$moduleName]
12+
13+
Write-Host "##[group]Processing module $moduleName"
14+
15+
Write-Host "All installed modules with name $moduleName :"
16+
Get-Module -Name $moduleName -ListAvailable
17+
Write-Host
18+
19+
$modules = Get-Module -Name $moduleName -ListAvailable | Where-Object Version -gt ([Version]$moduleVersion)
20+
$modules | ForEach-Object {
21+
$installedModule = $_
22+
$installedModuleName = $installedModule.Name
23+
24+
Write-Host "##[section]Unqualified pre-installed module is $installedModuleName with version $($installedModule.Version)."
25+
$installedModule | Format-List
26+
27+
$moduleDirectory = $installedModule.Path | Split-Path | Split-Path
28+
if (Test-Path -Path $moduleDirectory) {
29+
Write-Host "##[section]Start to remove module located in $moduleDirectory."
30+
Remove-Item -Path $moduleDirectory -Recurse -Force -ErrorAction SilentlyContinue
31+
Write-Host "##[section]Module $installedModuleName has been removed."
32+
Write-Host
33+
}
1534
}
35+
36+
Write-Host "##[endgroup]"
37+
Write-Host
1638
}
1739
}
1840

19-
RemovePreInstalledModule -Name Az
20-
RemovePreInstalledModule -Name AzureRM
41+
$modulesToRemove = @{
42+
"Az" = "0.0.0.0";
43+
"Az.*" = "0.0.0.0";
44+
"Azure" = "0.0.0.0";
45+
"Azure.*" = "0.0.0.0";
46+
"AzureRM" = "0.0.0.0";
47+
"AzureRM.*" = "0.0.0.0";
48+
"Pester" = "4.10.1.0"
49+
}
50+
RemovePreInstalledModule -ModuleToRemove $modulesToRemove

0 commit comments

Comments
 (0)