Skip to content

Code Coverage report counters are incorrect when there are multiple packages in the report. #1242

@tbravo5

Description

@tbravo5

1. General summary of the issue

Code Coverage report counters are incorrect when there are multiple packages in the report.

2. Describe Your Environment

Pester version : 4.6.0 C:\Program Files\WindowsPowerShell\Modules\Pester\4.6.0\Pester.psd1
PowerShell version : 5.1.14409.1018
OS version : Microsoft Windows NT 6.1.7601 Service Pack 1

3. Expected Behavior

Expecting Code Coverage report counters to be the sum of all package counters.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd">
<report name="Pester (02/11/2019 11:04:08)">
  <package name="Deploy/Common">
    <counter type="INSTRUCTION" missed="6" covered="67" />
    <counter type="LINE" missed="4" covered="51" />
    <counter type="METHOD" missed="2" covered="5" />
    <counter type="CLASS" missed="1" covered="3" />
  </package>
  <package name="Deploy">
    <counter type="INSTRUCTION" missed="0" covered="37" />
    <counter type="LINE" missed="0" covered="16" />
    <counter type="METHOD" missed="0" covered="1" />
    <counter type="CLASS" missed="0" covered="1" />
  </package>
  <counter type="INSTRUCTION" missed="6" covered="104" />
  <counter type="LINE" missed="4" covered="67" />
  <counter type="METHOD" missed="2" covered="6" />
  <counter type="CLASS" missed="1" covered="4" />
</report>

4.Current Behavior

Currently Code Coverage report counters are the same as the last package counters.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd">
<report name="Pester (02/11/2019 11:04:08)">
  <package name="Deploy/Common">
    <counter type="INSTRUCTION" missed="6" covered="67" />
    <counter type="LINE" missed="4" covered="51" />
    <counter type="METHOD" missed="2" covered="5" />
    <counter type="CLASS" missed="1" covered="3" />
  </package>
  <package name="Deploy">
    <counter type="INSTRUCTION" missed="0" covered="37" />
    <counter type="LINE" missed="0" covered="16" />
    <counter type="METHOD" missed="0" covered="1" />
    <counter type="CLASS" missed="0" covered="1" />
  </package>
  <counter type="INSTRUCTION" missed="0" covered="37" />
  <counter type="LINE" missed="0" covered="16" />
  <counter type="METHOD" missed="0" covered="1" />
  <counter type="CLASS" missed="0" covered="1" />
</report>

5. Possible Solution

It seems like a report counter object needs to be created before package loop in Get-JaCoCoReportXml which accumulates counters from all package objects and is used when writing the report counters in Get-JaCoCoReportXml to the report.

6. Context

This is causing PowerShell project builds in TFS to publish incorrect Code Coverage results.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions