build/pesterBootstrap.ps1
param( [string] $workingDirectory, [string] $outputDirectory, [string] $tagsToInclude, [string] $tagsToExclude, [string] $DacPacFilePath, [string] $SqlServerConnectionString, [string] $PublishOptionsFilePath ) Import-Module -Name Pester $pesterVersion = Get-Module -Name Pester if (!(Test-Path Variable:\pesterVersion)) {Write-Host "Didn't find a pester module installed"} else {Write-Host $pesterVersion.Version} $pesterMajorVersion = $pesterVersion.Version.Major if (($pesterVersion.Version.Major -lt 4) -or (!(Test-Path Variable:\pesterMajorVersion))) { Write-Host "Pester version is incompatible or missing. Trying to install latest Pester version." if (($PSVersionTable.PSVersion.Major -eq 5 -and $PSVersionTable.PSVersion.Minor -ge 1) -or $PSVersionTable.PSVersion.Major -gt 5) { try { $pesterVersion.Version Install-Module -Name Pester -Force -Scope CurrentUser -SkipPublisherCheck Write-Host "Installed Pester module" Import-Module -Name Pester -MinimumVersion 4.0.0 -Force } catch { $Message = $_.Exception.Message Write-Host "Unable to install Pester, see exception message for additional details." Write-Host $Message exit -1 } } else { Write-Host "Powershell Version "$PSVersionTable.PSVersion.Major"."$PSVersionTable.PSVersion.Minor" - please use at least version 5.1 or higher of powershell for us to dynamically install the required Pester version" } } $Parameters = @{ PassThru = $True ExcludeTag = $tagsToExclude Tag = $tagsToInclude OutputFile = "$outputDirectory/TEST-output.xml" OutputFormat = 'NUnitXml' Script = @{Path = "$workingDirectory"; Parameters = @{DacPacFilePath = "$DacPacFilePath"; SqlServerConnectionString = $SqlServerConnectionString; PublishOptionsFilePath = $PublishOptionsFilePath}}; } $result = Invoke-Pester @Parameters if ($result.failedCount -ne 0) { Write-Error "Pester returned errors" Exit -1 } |