Tasks/DevX.Tasks.Testing.ps1
|
# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # Synopsis: Compose the module from source files task ComposeModule InitializeDevXConfiguration, { <# .SYNOPSIS #> Build-ComposedModule -ProjectRootFolderPath $BuildRoot } # Synopsis: Load the DevX configuration file to use in other tasks task InitializeDevXConfiguration { <# .SYNOPSIS #> $DevXConfigurationFile = Join-Path -Path $BuildRoot -ChildPath '.DevX.jsonc' if (Test-Path $DevXConfigurationFile) { $Script:DevX = Get-Content -Path $DevXConfigurationFile -Raw | ConvertFrom-Json -Depth 99 } } # Synopsis: Define shared Pester configuration for test tasks task ConfigurePester -Data $PSBoundParameters InitializeDevXConfiguration, { <# .SYNOPSIS #> $Script:PesterConfiguration = New-PesterConfiguration $Script:PesterConfiguration.Output.Verbosity = 'Detailed' } # Synopsis: Run unit tests for internal functionality task Unit -If (-not $SkipUnitTests) ConfigurePester, { <# .SYNOPSIS #> $UnitTestPath = Join-Path -Path $BuildRoot -ChildPath Source if (Get-ChildItem -Path $UnitTestPath -Recurse -Include '*.Tests.ps1') { $Configuration = $Script:PesterConfiguration $Configuration.Run.Path = $UnitTestPath $Configuration.Filter.Tag = 'Unit' $Configuration.TestResult = @{ Enabled = $true OutputPath = Join-Path -Path $BuildRoot -ChildPath "$($Script:DevX.ModuleName).Unit.Results.xml" TestSuiteName = $Script:DevX.ModuleName } Invoke-Pester -Configuration $Configuration } } # Synopsis: Run acceptance tests on composed module task Acceptance -If (-not $SkipAcceptanceTests) ConfigurePester, { <# .SYNOPSIS #> $AcceptanceTestPath = Join-Path -Path $BuildRoot -ChildPath Spec if ( (Test-Path -Path $AcceptanceTestPath) -and (Get-ChildItem -Path $AcceptanceTestPath -Recurse -Include '*.Tests.ps1') ) { $Configuration = $Script:PesterConfiguration $Configuration.Run.Path = $AcceptanceTestPath $Configuration.Filter.Tag = 'Acceptance' $Configuration.TestResult = @{ Enabled = $true OutputPath = Join-Path -Path $BuildRoot -ChildPath "$($Script:DevX.ModuleName).Acceptance.Results.xml" TestSuiteName = $Script:DevX.ModuleName } Invoke-Pester -Configuration $Configuration } } # Synopsis: Run all tests; Acceptance disabled for now task Test ConfigurePester, Unit, Acceptance |