diff --git a/pester-extensions.psm1 b/pester-extensions.psm1 index 6cec822..b5ab964 100644 --- a/pester-extensions.psm1 +++ b/pester-extensions.psm1 @@ -6,23 +6,28 @@ Pester extension that allows to run command and validate exit code #> function Get-CommandResult { - param ( + Param ( [Parameter(Mandatory=$true)] [string] $Command, [switch] $Multiline ) - # Bash trick to suppress and show error output because some commands write to stderr (for example, "python --version") - $stdout = & bash -c "$Command 2>&1" + # CMD trick to suppress and show error output because some commands write to stderr (for example, "python --version") + If ($IsWindows) { + [string[]]$output = & $env:comspec /c "$Command 2>&1" + } else { + $output = & bash -c "$Command 2>&1" + } $exitCode = $LASTEXITCODE + return @{ - Output = If ($Multiline -eq $true) { $stdout } else { [string]$stdout } + Output = If ($Multiline -eq $true) { $output } else { [string]$output } ExitCode = $exitCode } } function ShouldReturnZeroExitCode { Param( - [String] $ActualValue, + [string] $ActualValue, [switch] $Negate, [string] $Because # This parameter is unused by we need it to match Pester asserts signature ) diff --git a/win-vs-env.psm1 b/win-vs-env.psm1 index 1eb9093..e9f3d1a 100644 --- a/win-vs-env.psm1 +++ b/win-vs-env.psm1 @@ -3,7 +3,7 @@ ### function Get-VSWhere { - $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"; + $vswhere = "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" if (-not (Test-Path $vswhere )) { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 @@ -34,9 +34,11 @@ function Invoke-Environment } function Get-VSInstallationPath { + Write-Host "ProgramFiles(x86) - ${env:ProgramFiles(x86)}" $vswhere = Get-VSWhere + Write-Host "vswhere - $vswhere" $installationPath = & $vswhere -prerelease -legacy -latest -property installationPath - + Write-Host "installationPath - $installationPath" return $installationPath }