mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-28 20:38:12 +08:00
[macOS] change Invoke-Pester function (#2261)
* [macOS] change Invoke-Pester function * added new logic * try another approach. * invoke-tests change * added a little bunch of tests. * remove import from browsers * added source for all tests covered scripts. * run all tests. * added proper module import * RunAll-Tests.ps1 changes. * added shebang * added new approach for tests. * the first line should be shebang * fixed nitpicks
This commit is contained in:
@@ -1,8 +1,4 @@
|
||||
# Invokes command and validate that the exit code is 0
|
||||
function Validate-ZeroExitCode($command) {
|
||||
$result = Get-CommandResult $command
|
||||
$result.ExitCode | Should -Be 0 -Because $result.Output
|
||||
}
|
||||
Import-Module "$PSScriptRoot/Common.Helpers.psm1"
|
||||
|
||||
# Validates that tool is installed and in PATH
|
||||
function Validate-ToolExist($tool) {
|
||||
@@ -84,4 +80,40 @@ function ShouldReturnZeroExitCode {
|
||||
|
||||
If (Get-Command -Name Add-AssertionOperator -ErrorAction SilentlyContinue) {
|
||||
Add-AssertionOperator -Name ReturnZeroExitCode -InternalName ShouldReturnZeroExitCode -Test ${function:ShouldReturnZeroExitCode}
|
||||
}
|
||||
|
||||
function Invoke-PesterTests {
|
||||
Param(
|
||||
[Parameter(Mandatory)][string] $TestFile,
|
||||
[string] $TestName
|
||||
)
|
||||
|
||||
$testPath = "$HOME/image-generation/tests/${TestFile}.Tests.ps1"
|
||||
if (-not (Test-Path $testPath)) {
|
||||
throw "Unable to find test file '$TestFile' on '$testPath'."
|
||||
}
|
||||
|
||||
# Check that Pester module is imported
|
||||
if (!(Get-Module "Pester")) {
|
||||
Import-Module Pester
|
||||
}
|
||||
|
||||
$configuration = [PesterConfiguration] @{
|
||||
Run = @{ Path = $testPath; PassThru = $true }
|
||||
Output = @{ Verbosity = "Detailed" }
|
||||
}
|
||||
if ($TestName) {
|
||||
$configuration.Filter.FullName = $TestName
|
||||
}
|
||||
|
||||
# Switch ErrorActionPreference to Stop temporary to make sure that tests will on silent errors too
|
||||
$backupErrorActionPreference = $ErrorActionPreference
|
||||
$ErrorActionPreference = "Stop"
|
||||
$results = Invoke-Pester -Configuration $configuration
|
||||
$ErrorActionPreference = $backupErrorActionPreference
|
||||
|
||||
# Fail in case if no tests are run
|
||||
if (-not ($results -and ($results.FailedCount -eq 0) -and ($results.PassedCount -gt 0))) {
|
||||
$results
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user