- Fix Mock outputting command metadata
- Fix code coverage when there are multiple packages #1244
- Add alias for extension-less external commands on Windows #1252
- Add use alises in mock ParameterFilter #1240
- Fix creating mocks of Get-Module #1233
- Fix Set-ItResult not failing in Pester strict mode #1225
- Remove Invoke-GherkinStep from exported functions #1229
- Add Should -HaveParameter assertion #1202
- Add scriptblock filter for Describe #1220
- Fix timing in describe #1185
- Fix more issues with parallel TestRegistry #1224
- Add support for code coverage in VSCode #1199
- Remote Tests from CodeCoverage by default #1196
- Add short-circuting to Ghrerkin scenario #1198
- Fix error in parallel TestRegistry #1197
- The rest listed in betas below
- Add more info to code coverage passthru #1190
- Add scenario for every example in Gherkin #1168
- Add support for other languages to Gherkin #1166
- Fix skipping tests in Gherkin #1174
- Fix hashtable casing to avoid fails on Ubuntu #1193
- Fix NUnit xml report for Gherkin #1180
- Remove DetailedCodeCoverage because it is the default #1189
- Add TestRegistry #1112
- Add set test result and message from inside of test #1026
- Add possibility to pass scripts directly to Invoke-Pester #972
- Add even better code coverage #1120
- Add more comprehensive code coverage #920
- Add optional session state debugging info #1169
- Fix Set-Variable mocking #1109
- Fix usage of ArrayList #1114
- Fix features and scenario names #1138
- Fix step counting #1150
- Fix Set-ItResult help #1171
- Migrate build to AppVeyor, Azure and Travis
- Fix hashtable casing which caused fails on Ubuntu with C.UTF-8 LANG #1193
- Add signing scripts
- Same as 4.4.3-beta1 but signed
- Fix InModuleScope when using unbound scriptBlock #1146
- Allow multiple aliases for an assertion #1122
- Update Invoke-Pester docs to favor -Show None over -Quiet #1125
- Fix taking multiple instances of id or uname #1126
- Sign the module
- Remove single quotes when expanding strings in test name #1090
- Get environment info on non-windows platforms #1105
- Run all tests in strict mode #1041
- Fix non-existent module check #1040
- Fix testdrive silent fails #1059
- Fix tags filter warning #1073
- Remove splitting on tags #1074
- Add wildcards for tags #1038
- Fix ps error in Pester tests on Linux #1037
- Fix dynamic module clean up after mock tests #1036
- Fix mocks clean up on start #1035
- Fix lessthan greaterthan assertion messages #1034
- Fix saving result files to the path provided as a PSDrive #1033
- Fix style rules for Pester dependencies #1031
- Add error message to fail in Should -Not -Throw #1027
- Add FileContentMatchMultiline back among assertions. #1023
- Fix FileContentMatchMultiline #1024
- Fix file count in JaCoCo report #1013
- Fix issue template by using the -ListAvailable #1001
- Fix Add-AssertionOperator example #1016
- Fix spaces in DescribeImpl #1019
- Fix -FileContentMatch example #1020
- Fix missing dependencies in packages
- Add tests for help #997
- Update output in assertions #996
- Fix stack trace output in assertions #992
- Add examples for gherkin #994#995
- Update should documentation #990
- Add tags PSEdition_Core, PSEdition_Desktop #978
- Add Get-ScriptModule error message with link to wiki #945
- Fix Write-PesterStart #964
- Fix AfterAll synopsis #975
- Fix detection of empty tests #835
- Add -Because parameters to all assertions #959
- Add -BeLessOrEqual and -BeGreaterOrEqual
- Add -Contain (that operates on arrays)
- Add -BeLikeExactly
- Add -HaveType alias to -BeOfType
- Fix assertion messages in -BeOfType
- Throw argument exception when -BeOfType is given type that is not loaded
- Add -PassThru to -Throw to get the exception when some is thrown and passes the filters
- Add -BeTrue to test for truthy values
- Add -BeFalse to test for falsy values
- Add -HaveCount to count stuff in collections
- Load dependencies optionally, because they are not part of the package build
- Should Throw filters on exception type #954
- Fix deployment scripts and package on choco and nuget
- Help for the Assert-VerifiableMocks function added #883
- Add-AssertionOperator can be called multiple times for identical parameters without errors. #893
- Update Pester to work on PowerShell Core at Windows, Linux, macOS #925
- Throw on Assert-VerifiableMocks #918
- Update a syntax of Should for the Pester v4 notation #903
- Syntax for the Should operator updated in Pester tests itself, an about_* documentation, examples #910
- Remove progress to make execution faster and fix linux formatting #938
- Invoke-Pester -Strict fails with internal pester error #886 due to the prefered syntax change introduced in Pester v4 #903
- Fix Gherkin for Linux #937 and PS2 #942
- Add Assert-VerifiableMocks that throws #881
- Use https in manifest and link to release notes #871
- Make commands singular #860
- Update help of Gherkin-related functions #861
- Rename Contain assertions to FileContentMatch #859
- Remove CommandUsed parameter from Describe #858
- Add new readme #837
- Add CodeCoverageOutputFileFormat parameter #850
- Update help for New-PesterOption #847
- Extend style rules to psd1 files #842
- Update help of New-MockObject and Context #841
- Update help of Invoke-Gherking #839
- Fix exception propagating outside of describe/context when AfterAll fails #836
- Fix foreground for inconclusive tests results #829
- Add limit for cyclic arrays on Should -Be #824
- Fix infinite recursion on Should -Be #818
- Fix output when passing in hashtables #816
- Fix -Verifiable parameter on Assert-VerifiableMocks #786
- Add Set-TestInconclusive documentation to It #778
- Add script analyzer tests and more internal fixes
- Publish Add-AssertionOperator #765
- Fix BeNullOrEmpty for empty hashtable #760
- Fix style rules #691
- Fix mock scope error message #759
- Fix mocking in consecutive scopes #747
- Add JaCoCo code coverage output #782
- Fix context and describe in test results #755
- Fix mocking functions in two consequitive contexts #744
- Fix import localized data on non en-US systems #711
- Fix IncludeVSCodeMarker #726
- Fix should be when working with distinct types #704
- Add commas to output #690
- Updated help and other small fixes
- Fix build script that builds the package for PowerShell gallery to include lib
- Pushing 4.0.0-rc again, because the PowerShell gallery does not allow the same version to be pushed again
- Fix nuget package to include gherkin library
-
Add Gherkin support
-
Add new should syntax to Should -Not -Be 1 to enable more extensibility
-
Add more unified output
-
Add colors to summary
-
(experimental) Add nested Describe and Context
-
Deprecated: Quiet parameter is depracated, use -Show none
-
Deprecated: New-TestDriveItem as most of the people do not even know it exists
-
Gone: OutputXml is gone, it was deprecated before, use -OutputFormat and -OutputFile
- Add -Show parameter to filter on-screen output #647
- Add BeIn assertion to assert an item is part of an array #646
- Fix test drive to work on PSCore #643
- Add New-MockObject function that creates empty objects for almost any .NET class #635
- Fixed mocking for certain cmdlets containing dynamic parameters in PowerShell 5.1. #599
- Bug fix when multiple cmdlets with the same name exist in PowerShell 5.1. #588
- Updated code to use Get-CimInstance if possible, then Get-WmiObject, for Nano compatibility. #484
- Fixed failure message output of Should BeLike / BeLikeExactly. #497
- Added some missing information to about_Should help. #519
- Made -OutputFormat parameter optional, defaulting to NUnitXml. #503
- Fix error message of Should Throw when null input is provided #521
- Fix mocking bug on functions that contain certain parameter names (Metadata, etc). #583
- Bug fix for PSv2 when no matching scripts are found by Invoke-Pester. #441
- Added "Should BeLike" assertion. #456
- Discarded unwanted pipeline output from BeforeEach / AfterEach / BeforeAll / AfterAll. #468
- Allowed closures to be used as mocks. #465
- Fixed invalid NUnit XML output if test script had a syntax error. #467
- Fix for mocking advanced functions that define a parameter named 'Args'. #471
- Fixed bug when trying to mock a command with a weird name containing a single quotation mark. #474
- Fixed bug for mocking Cmdlets that do not contain any positional parameters. #477
- Fixed bug when calling a mocked command from inside the mock. #478
- Added PesterOption parameter, and a switch to tweak console output for better VSCode extension functionality. #479
- Fixed Coverage analysis output, which broke in 3.3.12. #440
- Fixed a bug where mocking Get-Command would result in infinite recursion. #437
- Fixed a bug with mocking dynamic parameters on latest Windows 10 / PSv5 builds. #419
- Fix for NUnit XML export on .NET core. #420
- Added Set-TestInconclusive command. #421
- Mocking improvements for calling original commands with begin/process/end blocks. #422
- Case insensitive replacement of Test in help #428
- Improve stack trace and exception console output #426
- Added support for intercepting module-qualified calls to a mocked command. #432
- Improved Assert-MockCalled to allow it to be passed an alias as the -CommandName.
- Fixed a bug where mocking New-Object would cause a stack overflow. #405
- Fully qualified calls to Get-Content within Mocking code, to avoid triggering client's mocked versions of that command. #362
- Fixed a scoping error when calling the original command if no parameter filters match the call. #362
- Added Ignore alias for -Skip on the It command, and updated NUnit output to flag these tests as Ignored instead of Skipped, for better integration with things like TeamCity. #368
- Added support for Unicode to Should Contain. #378
- Added support for side-by-side installations to chocolateyInstall.ps1. #401
- Fixed Describe's handling of TestName filter when multiple strings are passed to Invoke-Pester's -TestName parameter.
- Failing BeforeEach or AfterEach will fail the test #326
- Added BeOfType operator to the Should command. #327
- Fixed BeforeEach / etc parsing in PSv3+ so breakpoints and automatic variables ($PSCommandPath, etc) will work properly. #333
- Fixed bug in 'Should Be' when comparing strings, and null or empty strings are piped in to the Should command. #333
- Added some calls to Write-Progress in the It command. #322
- Bug fix when mocking functions that are in the global scope; the original functions were being lost when the Describe block ended. #323
- Improved failed assertion output from Assert-MockCalled; now behaves more like Should. #324
- Added -ExclusiveFilter parameter to Assert-MockCalled. Works like -ParameterFilter, except there also must not be any calls to the mocked command which do not match the filter.
- Added the "bin" folder to the PATH environment variable when installing from Chocolatey. Also removed the hard-coded -OutputXml and -Strict parameters from this file; only -EnableExit is always used from the bat file now. #281
- PassThru object (when used in conjunction with -CodeCoverage) now includes information about Hit commands in addition to Missed commands. #341
- Improvements to support for mocking advanced functions with dynamic parameters. #346
- Fix for PowerShell v2 bug when mocking commands that have an -ArgumentList parameter with validation attributes. #354
- Fixed stack trace output when the call to Should is in a file other than the file that contains the It block. #358
- Further mocking fixes around the use of $ExecutionContext in client scope. #307
- Added workaround for GetDynamicParameters() bug that was affecting mocks on the ActiveDirectory module in Windows 7. #295
- Revised Mocking code to avoid potential bugs when functions define parameters named $ExecutionContext or $MyInvocation. #304
- Mocked functions no longer call Get-MockDynamicParameters if the original function had no dynamicparam block. #306
- Fix for mocking aliases for commands that are in scopes that Pester can't normally see. #267
- Added line information to test failure output in Should assertion failures. #266
- Added support for passing named parameters or positional arguments to test scripts, and for calling test scripts that are not named *.Tests.ps1. #272
- Made Pester compliant with StrictMode. #274
- Improved error message when InModuleScope finds multiple modules loaded with the same name. #276
- Updated build script to allow for custom root folder in the nupkg. #254
- Improved error messages for InModuleScope and Mock -ModuleName when multiple modules with the same name are loaded. Also enabled these commands to work if only one of the loaded modules is a Script module. #278
- Added some graceful handling of test code that has a misplaced break or continue statement. #290
- Updated tests to allow PRs to be automatically tested, with status updates to GitHub, by our CI server.
- Added Snippets directory to the nuget packages, and updated code so the module won't fail to import if Snippets are missing.
- No changes; publishing again to fix broken PowerShellGet upload.
- Performance Improvements
- Import ISESteroids snippets on load
- Updated Code Coverage analysis to be compatible with the PowerShell 5.0 AST when analyzing DSC configurations. #249
- Validate manifest version, changelog version and tag version
- Added BeforeAll and AfterAll commands
- Updated code to take advantage of -ErrorAction Ignore in PowerShell v3+.
- Add ISESteroids snippets but do not import them
- Added BeGreaterThan and BeLessThan assertions to Should.
- Add -Quiet parameter for Invoke-Pester that disables the output written to screen by Write-Host #223
- Fix Error output for TestDrive #232
- Add ExcludeTagFilter parameter #234
- Add different color schemes for dark and light backgrounds
- Fix Skipped and Pending
- Fix output format on non-US systems
- Fix mocking of Get-ItemProperty
- Fix mocking commands with parameters named $FunctionName, $ModuleName or $ArgumentList under some circumstances. #215
- Add Skipped and Pending test results
- Added support for parameterized tests to the It command.
- Deprecated -OutputXml parameter, added -OutputFile and -OutputFormat parameters.
- Added new updated NUnit export format. Original format still available as -OutputFormat LegacyNUnitXml.
- Stopped forcing -ParameterFilter blocks to return explicit booleans, preventing some unnecessary null reference exceptions.
- Can be installed from PowerShellGet
- Version updated to solve issue on PowerShellGet
- Coverage Analysis now ignores closing conditions of do/while and do/until loops, which were giving false failures. #200
- Calls to Functions and Cmdlets with dynamic parameters can now be mocked. #203
- Mock now avoids assigning strings to items in the Function provider, bypassing a PowerShell 3.0 bug.
- Bug fix when mocking executables or functions with no param block. #209
- Replace the nuget.exe with version 2.8.2 and set the Team City server to use the same version.
- Fixing wrong version in the manifest, publishing new version so I can update it on Nuget/Chocolatey
- Fix nuspec specification to build the 3.0.0 package correctly
- Add verbose output for Be and BeExactly string comparison #192
- Fixed NUnit XML output (missing close tag for failure element.) #195
- Fix code coverage tests so they do not left breakpoints set #149
- Add better output for hashtables in code coverage #150
- Fix Invoke-Pester -OutputXml usage of relative paths
- Remove Validate-Xml function
- Remove legacy object adaptations support
- Remove tests testing usage of the global scope
- Add function name to Code coverage output #152
- Suppress pipeline output in Context / Describe #155
- Coverage Output Update #156
- Add initial implementation of BeforeEach / AfterEach #158
- CodeCoverage of files containing DSC Configurations #163
- Rolling back some earlier Pester Scope changes #164
- Legacy expectations cleanup #165
- Invoke-Pester tests path fix #166
- Assert-MockCalled default ModuleName fix. #167
- Output exception source when test fails #147
- Fix for PesterThrowFailureMessage on PowerShell 2.0. #171
- Pester.bat no longer enables StrictMode. #172
- Fixed default behavior of fixture parameter in Describe and Context. #174
- Syntax errors in test files, as well as terminating errors from Describe or Context blocks are now treated as failed tests. #168
- Mock lifetime is no longer tied to It blocks. #176
- Add module manifest
- Added multiple lines to failure messages from Should Be and Should BeExactly. Updated console output code to support blank lines in failure messages and stack traces. #185
- Fixed stack trace information when test failures come from inside InModuleScope blocks, or from something other than a Should assertion. #183
- Fixed stack trace information from Describe and Context block errors in PowerShell 2.0. #186
- Fixed a problem with parameter / argument resolution in mocked cmdlets / advanced functions. #187
- Improved error reporting when Pester commands are called outside of a Describe block. #188
- Extensive updates to help files and comment-based help for v3.0 release. #190
- Add code coverage #148
- Fix TestName
- Fix direct execution of tests when the script is dot-sourced to global scope #144
- Fix mock parameter filter in strict mode #143
- Fix nUnit schema compatibility
- Fix special characters in nUnit output
- Add full support for module mocking
- Isolate Pester internals from tested code #139
- Tests.ps1 files can be run directly #139
- Add It scope to TestDrive
- Add It scope to Mock
- Add Scope parameter to Assert-MockCalled
- Measure test time more precisely
- Process It blocks in memory #123
- Fixed -ExecutionPolicy in pester.bat #130
- Add support for mocking internal module functions, aliases, exe and filters. #126
- Fix TestDrive clean up #129
- Fix ShouldArgs in Strict-Mode #134
- Fix initialize $PesterException #136
- Validate Should Assertion methods #135
- Fix using commands without fully qualified names #137
- Enable latest strict mode when running Pester tests using Pester.bat
- Fixed issue where TestDrive doesn't work with paths with . characters #52
- Fixed issues when mocking Out-File #71
- Exposing TestDrive with Get-TestDriveItem #70
- Fixed bug where mocking Remove-Item caused cleanup to break #68
- Added -Passthru to Setup to obtain file system object references #69
- Can assert on exception messages from Throw assertions #58
- Fixed assertions on empty functions #50
- Fixed New-Fixture so it creates proper syntax in tests #49
- Fixed assertions on Object arrays #61
- Fixed issue where curly brace misalignment would cause issues #90
- Better contrasting output colours #92
- New-Fixture handles "." properly #86
- Fixed mix scoping of It and Context #98 and #99
- Test Drives are randomly generated, which should allow concurrent Pester processes #100 and #94
- Fixed nUnit test failing on non-US computers #109
- Add case sensitive Be, Contain and Match assertions #107
- Fix Pester template self-tests #113
- Time is output to the XML report #95
- Internal fixes to remove unnecessary dependencies among functions
- Cleaned up Invoke-Pester interface
- Make output better structured
- Add -PassThru to Invoke-Pester #102, #84 and #46
- Makes New-Fixture -Path option more resilient #114
- Make the New-Fixture input accept any path and output objects
- Move New-Fixture to separate script
- Remove Write-UsageForNewFixture
- Fix Should Throw filtering by exception message #125
- Fixed line number reported in pester failure when using new pipelined should assertions #40
- Added describe/context scoping for mocks #42
- Fixed exit code bug that was introduced in version 2.0.0
- Renamed -EnableLegacyAssertions to -EnableLegacyExpectations
- Functionality equivalent to 1.2.0 except legacy assertions disabled by default. This is a breaking change for anyone who is already using Pester
- Fixing many of the scoping issues #9
- Ability to tag describes #35
- Added new assertion syntax (eg: 1 | Should Be 1)
- Added 'Should Throw' assertion #37
- Added 'Should BeNullOrEmpty' assertion #39
- Added negative assertions with the 'Not' keyword
- Added 'Match' assertion
- Added -DisableOldStyleAssertions #19 and #27
- Added Contain assertion which tests file contents #13
- Add should.not_be #38
- Add mocking functionality #26
This changelog is inspired by the Vagrant file. Hopefully this will help keep the releases tidy and understandable.