Description
Checklist
- Issue has a meaningful title
- I have searched the existing issues. See all issues
- I have tested using the latest version of Pester. See Installation and update guide.
What is the issue?
CodeCoverage XML reports always report encoding="utf-8"
regardless of CodeCoverage.OutputEncoding
configuration option. The file itself is written using the selected encoding.
Related comment: #2298 (comment)
Expected Behavior
XML report should report the correct encoding in xml declaration.
Steps To Reproduce
# Executed in pester-repo
$c = New-PesterConfiguration
$c.Run.Path = './tst/functions/assertions'
$c.Run.ExcludePath = '*/demo/*', '*/examples/*', '*/testProjects/*', '*/Pester.Tests.ps1'
$c.Output.Verbosity = 'Detailed'
$c.CodeCoverage.Enabled = $true
$c.CodeCoverage.Path = './src/functions'
$c.CodeCoverage.UseBreakpoints = $false
$c.CodeCoverage.OutputFormat = 'JaCoCo'
$c.CodeCoverage.OutputEncoding = 'unicode' #utf-16
Invoke-Pester -Configuration $c
Generated coverage.xml is UTF-16 LE, but says <?xml version="1.0" encoding="UTF-8" standalone="no"?>
Describe your environment
Pester version : 5.6.0-beta1 /workspaces/Pester/bin/Pester.psm1
PowerShell version : 7.4.1
OS version : Unix 5.15.133.1
Possible Solution?
-
Improve type for configuration option or limit current string option to valid encodings. Related issue Invoke-Pester breaks on invalid CodeCoverage.OutputEncoding format #2451
-
Remove/replace hard-coded value here:
Pester/src/functions/Coverage.ps1
Line 924 in 93c6610
-
Consider replacing
Out-File
withXmlWriter
andXmlWriterSettings.Encoding
-option like TestResults? See related issue TestResults.OutputEncoding option ignored #2452