Skip to content

CodeCoverage.OutputEncoding ignored in xml encoding-attribute #2450

Open
@fflaten

Description

@fflaten

Checklist

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?

  1. Improve type for configuration option or limit current string option to valid encodings. Related issue Invoke-Pester breaks on invalid CodeCoverage.OutputEncoding format #2451

  2. Remove/replace hard-coded value here:

    $jaCoCoReport = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'

  3. Consider replacing Out-File with XmlWriter and XmlWriterSettings.Encoding-option like TestResults? See related issue TestResults.OutputEncoding option ignored #2452

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions