Migrating from Pester v5 to v6
Pester v6 builds upon the new runtime introduced in v5 and behaves mostly the same which ensures backwards-compatibility. This guide will highlight any necessary steps to update your code and environment to run Pester v6.
Breaking Changes​
Removed support for PowerShell 3, 4, 5.0, 6, 7.0 and 7.1​
To be able to support new functionality and modernize the codebase, Pester 6.0.0 dropped support for unsupported versions of PowerShell. It currently requires Windows PowerShell 5.1 or PowerShell 7.2 and later, see Installation.
Make sure your computer and/or CI-systems are updated to run a supported version of PowerShell.
Removed Assert-MockCalled
and Assert-VerifiableMock
​
Both functions were deprecated and replaced in Pester v5 and has been fully removed in Pester v6. Replace:
Assert-MockCalled
with Should -InvokeAssert-VerifiableMock
with Should -InvokeVerifiable
Removed Set-ItResult -Pending
​
The Pending result was never fully implemented in v5 and has been removed in v6.
Replace any calls to Set-ItResult -Pending
with Set-ItResult -Inconclusive/-Skip
or mark the test using It .. -Skip
.
Discovery throws on empty -ForEach
values​
Data-driven tests will throw when provided $null
or an empty array to -ForEach/TestCases
. This makes it easier to detect common errors like referencing a variable that is not defined in BeforeDiscovery
or provided as external data. Previously these tests and blocks would be silently ignored.
To allow empty data in specific blocks or tests, use the new -AllowNullOrEmptyForEach
switch in Describe/Context/It
.
To disable the new behavior globally, set the configuration option Run.FailOnNullOrEmptyForEach
to $false
.
Changed Defaults​
Code Coverage defaults to the newer Profiler-based tracer​
When using Code Coverage it will now run using the newer and faster Profiler-based tracer instead of using breakpoints.
The option CodeCoverage.UseBreakpoints
is no longer experimental mode and the new default is $false
.
To switch back to the older breakpoints-mode, set CodeCoverage.UseBreakpoints
to $true
.
Like the v6 preview docs in general this guide is incomplete and will be updated as we release new builds. To keep up with the latest development, see the release notes for 6.0.0 pre-release builds at https://github.com/pester/Pester/releases