Pester
Pester copied to clipboard
Tests are not included in coverage even when ExcludeTests = $false;
Checklist
- [X] Issue has a meaningful title
- [X] I have searched the existing issues. See all issues
- [X] I have tested using the latest version of Pester. See Installation and update guide.
What is the issue?
When code coverage in config is set to not exclude tests , they are still excluded.
Expected Behavior
*.Tests.ps1 files to be included in code coverage report.
Steps To Reproduce
src/SomeClass.psm1
class SomeClass {
SomeClass() {
Write-Host "Constructor invoked.";
}
[string]GetFoo() {
return "Foo";
}
}
test/SomeClass.Tests.ps1
using module ../src/SomeClass.psm1;
describe 'SomeClass tests' {
it 'Constructor should not throw' {
[SomeClass]::new();
}
describe 'GetFoo tests' {
it ' Shuld return Foo' {
$inst = [SomeClass]::new();
$inst.GetFoo() | Should -Be "Foo";
}
}
}
runTests.ps1
$config = New-PesterConfiguration;
$config.CodeCoverage.Enabled = $true;
$config.CodeCoverage.ExcludeTests = $false;
$config.CodeCoverage.OutputFormat = 'JaCoCo'
$config.CodeCoverage.OutputPath = "coverage.xml"
$config.CodeCoverage.Path = @("test", "src");
Write-Host ("Pester version: {0}" -f (Get-Module Pester).Version);
Invoke-Pester -Config $config;
Get-Content .\coverage.xml
output
>.\runTests.ps1
Pester version: 5.6.0
Starting discovery in 1 files.
Discovery found 2 tests in 271ms.
Starting code coverage.
Running tests.
Constructor invoked.
Constructor invoked.
[+] C:\...\pester-test\test\SomeClass.Tests.ps1 898ms (82ms|577ms)
Tests completed in 921ms
Tests Passed: 2, Failed: 0, Skipped: 0, Inconclusive: 0, NotRun: 0
Processing code coverage result.
Covered 100% / 75%. 2 analyzed Commands in 1 File.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"[]>
<report name="Pester (06/27/2024 08:50:47)">
<sessioninfo id="this" start="1719478246990" dump="1719478247911" />
<package name="src">
<class name="src/SomeClass" sourcefilename="SomeClass.psm1">
<method name="SomeClass" desc="()" line="3">
<counter type="INSTRUCTION" missed="0" covered="1" />
<counter type="LINE" missed="0" covered="1" />
<counter type="METHOD" missed="0" covered="1" />
</method>
<method name="GetFoo" desc="()" line="6">
<counter type="INSTRUCTION" missed="0" covered="1" />
<counter type="LINE" missed="0" covered="1" />
<counter type="METHOD" missed="0" covered="1" />
</method>
<counter type="INSTRUCTION" missed="0" covered="2" />
<counter type="LINE" missed="0" covered="2" />
<counter type="METHOD" missed="0" covered="2" />
<counter type="CLASS" missed="0" covered="1" />
</class>
<sourcefile name="SomeClass.psm1">
<line nr="3" mi="0" ci="1" mb="0" cb="0" />
<line nr="6" mi="0" ci="1" mb="0" cb="0" />
<counter type="INSTRUCTION" missed="0" covered="2" />
<counter type="LINE" missed="0" covered="2" />
<counter type="METHOD" missed="0" covered="2" />
<counter type="CLASS" missed="0" covered="1" />
</sourcefile>
<counter type="INSTRUCTION" missed="0" covered="2" />
<counter type="LINE" missed="0" covered="2" />
<counter type="METHOD" missed="0" covered="2" />
<counter type="CLASS" missed="0" covered="1" />
</package>
<counter type="INSTRUCTION" missed="0" covered="2" />
<counter type="LINE" missed="0" covered="2" />
<counter type="METHOD" missed="0" covered="2" />
<counter type="CLASS" missed="0" covered="1" />
</report>
Describe your environment
Pester version : 5.6.0 C:\Users\...\Documents\PowerShell\Modules\Pester\5.6.0\Pester.psm1
PowerShell version : 7.4.1
OS version : Microsoft Windows NT 10.0.19045.0
Possible Solution?
No response