Testing with Pester
The PowerShell module Pester can be used to build unit tests for scripts and functions. Unit tests target the smallest possible unit of code, which, in PowerShell, is likely to be a function or a method in a PowerShell class.
Pester tests are saved in a file named ending with .tests.ps1
and executed using the command Invoke-Pester.Invoke-Pester
finds files named *.tests.ps1
under a given path and executes all tests in each.
Describe
and Should
statements may also be entered in the console when exploring syntax, but this is not the normal method of defining and running tests.
While Pester
is included with Windows 10, it is not the latest version. The latest version may be installed from the PSGallery
:
Install-Module Pester -Force
Why write tests?
A set of tests can help when:
- Debugging
- Refactoring
A set of tests can prevent a bug making it out of a development environment, whether as the result of a change, or because the feature is new.
Refactoring, or restructuring, existing code...