microsoft/hve-core

Public

mirrored from https://github.com/microsoft/hve-coreAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
hve-core-v1.1.0

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

scripts/tests/pester.config.ps1

63lines · modecode

1#!/usr/bin/env pwsh
2#
3# pester.config.ps1
4#
5# Purpose: Pester 5.x configuration for HVE-Core PowerShell testing
6# Author: HVE Core Team
7#
8
9[CmdletBinding()]
10param(
11 [Parameter()]
12 [switch]$CI,
13
14 [Parameter()]
15 [switch]$CodeCoverage,
16
17 [Parameter()]
18 [string[]]$TestPath = @("$PSScriptRoot")
19)
20
21$configuration = New-PesterConfiguration
22
23# Run configuration
24$configuration.Run.Path = @($TestPath)
25$configuration.Run.Exit = $CI.IsPresent
26$configuration.Run.PassThru = $true
27$configuration.Run.TestExtension = '.Tests.ps1'
28
29# Filter configuration
30$configuration.Filter.ExcludeTag = @('Integration', 'Slow')
31
32# Output configuration
33$configuration.Output.Verbosity = if ($CI.IsPresent) { 'Normal' } else { 'Detailed' }
34$configuration.Output.CIFormat = if ($CI.IsPresent) { 'GithubActions' } else { 'Auto' }
35$configuration.Output.CILogLevel = 'Error'
36
37# Test result configuration (NUnit XML for CI artifact upload)
38$configuration.TestResult.Enabled = $CI.IsPresent
39$configuration.TestResult.OutputFormat = 'NUnitXml'
40$configuration.TestResult.OutputPath = Join-Path $PSScriptRoot '../../logs/pester-results.xml'
41$configuration.TestResult.TestSuiteName = 'HVE-Core-PowerShell-Tests'
42
43# Code coverage configuration
44if ($CodeCoverage.IsPresent) {
45 $configuration.CodeCoverage.Enabled = $true
46 $configuration.CodeCoverage.OutputFormat = 'JaCoCo'
47 $configuration.CodeCoverage.OutputPath = Join-Path $PSScriptRoot '../../logs/coverage.xml'
48 $configuration.CodeCoverage.Path = @(
49 (Join-Path $PSScriptRoot '../linting/**/*.ps1'),
50 (Join-Path $PSScriptRoot '../linting/**/*.psm1'),
51 (Join-Path $PSScriptRoot '../security/**/*.ps1'),
52 (Join-Path $PSScriptRoot '../dev-tools/**/*.ps1'),
53 (Join-Path $PSScriptRoot '../lib/**/*.ps1'),
54 (Join-Path $PSScriptRoot '../extension/**/*.ps1')
55 )
56 $configuration.CodeCoverage.ExcludeTests = $true
57 $configuration.CodeCoverage.CoveragePercentTarget = 70
58}
59
60# Should configuration
61$configuration.Should.ErrorAction = 'Stop'
62
63return $configuration
64