From 825cf739dfa4f29268a1b0e23b2a03822caf5bfd Mon Sep 17 00:00:00 2001
From: Frode Flaten <3436158+fflaten@users.noreply.github.com>
Date: Sat, 8 Jun 2024 15:10:56 +0000
Subject: [PATCH 01/33] Version v5 docs and keep as latest
---
docusaurus.config.js | 7 +-
.../additional-resources/articles.mdx | 20 +
.../additional-resources/articles.table.js | 427 ++++++
.../additional-resources/courses.mdx | 20 +
.../additional-resources/courses.table.js | 38 +
.../version-v5/additional-resources/misc.mdx | 38 +
.../additional-resources/misc.table.js | 51 +
.../additional-resources/projects.mdx | 24 +
.../additional-resources/projects.table.js | 93 ++
.../additional-resources/videos.mdx | 20 +
.../additional-resources/videos.table.js | 87 ++
.../version-v5/assertions/assertions.mdx | 392 ++++++
.../assertions/custom-assertions.mdx | 232 ++++
.../version-v5/assertions/should-command.mdx | 76 ++
.../commands/Add-ShouldOperator.mdx | 169 +++
.../version-v5/commands/AfterAll.mdx | 110 ++
.../version-v5/commands/AfterEach.mdx | 107 ++
.../version-v5/commands/Assert-MockCalled.mdx | 187 +++
.../commands/Assert-VerifiableMock.mdx | 64 +
.../version-v5/commands/BeforeAll.mdx | 119 ++
.../version-v5/commands/BeforeDiscovery.mdx | 97 ++
.../version-v5/commands/BeforeEach.mdx | 104 ++
.../version-v5/commands/Context.mdx | 186 +++
.../commands/ConvertTo-JUnitReport.mdx | 121 ++
.../commands/ConvertTo-NUnitReport.mdx | 148 +++
.../commands/ConvertTo-Pester4Result.mdx | 89 ++
.../version-v5/commands/Describe.mdx | 196 +++
.../commands/Export-JUnitReport.mdx | 108 ++
.../commands/Export-NUnitReport.mdx | 124 ++
.../commands/Get-ShouldOperator.mdx | 97 ++
.../version-v5/commands/InModuleScope.mdx | 207 +++
.../version-v5/commands/Invoke-Pester.mdx | 656 +++++++++
versioned_docs/version-v5/commands/It.mdx | 265 ++++
versioned_docs/version-v5/commands/Mock.mdx | 342 +++++
.../version-v5/commands/New-Fixture.mdx | 145 ++
.../version-v5/commands/New-MockObject.mdx | 197 +++
.../commands/New-PesterConfiguration.mdx | 275 ++++
.../commands/New-PesterContainer.mdx | 155 +++
.../version-v5/commands/Set-ItResult.mdx | 166 +++
versioned_docs/version-v5/commands/Should.mdx | 1184 +++++++++++++++++
.../version-v5/commands/docusaurus.sidebar.js | 38 +
.../contributing/feature-requests.mdx | 10 +
.../version-v5/contributing/introduction.mdx | 63 +
.../version-v5/contributing/pull-requests.mdx | 148 +++
.../contributing/reporting-issues.mdx | 25 +
versioned_docs/version-v5/index.html | 18 +
.../version-v5/introduction/installation.mdx | 132 ++
.../migrations/breaking-changes-in-v5.mdx | 39 +
.../version-v5/migrations/v3-to-v4.mdx | 236 ++++
.../version-v5/migrations/v4-to-v5.mdx | 177 +++
versioned_docs/version-v5/quick-start.mdx | 338 +++++
versioned_docs/version-v5/usage/_GetEmoji.mdx | 24 +
.../version-v5/usage/_PesterDemoFunctions.mdx | 55 +
.../version-v5/usage/code-coverage.mdx | 217 +++
.../version-v5/usage/configuration.mdx | 125 ++
.../version-v5/usage/data-driven-tests.mdx | 691 ++++++++++
.../version-v5/usage/discovery-and-run.mdx | 168 +++
.../usage/file-placement-and-naming.mdx | 34 +
.../usage/images/azuredevops-log.png | Bin 0 -> 3440 bytes
.../usage/images/azuredevops-report.png | Bin 0 -> 2368 bytes
.../version-v5/usage/images/github-log.png | Bin 0 -> 3963 bytes
.../version-v5/usage/images/github-report.png | Bin 0 -> 3523 bytes
.../usage/images/minimal-output.gif | Bin 0 -> 1692134 bytes
.../usage/images/output-detailed.png | Bin 0 -> 15151 bytes
.../usage/images/output-diagnostic.png | Bin 0 -> 44094 bytes
.../version-v5/usage/images/output-normal.png | Bin 0 -> 8563 bytes
.../version-v5/usage/images/single-test.gif | Bin 0 -> 1494447 bytes
.../usage/images/stacktrace-filtered.png | Bin 0 -> 3919 bytes
.../usage/images/stacktrace-firstline.png | Bin 0 -> 3478 bytes
.../usage/images/stacktrace-full.png | Bin 0 -> 13260 bytes
.../usage/images/stacktrace-none.png | Bin 0 -> 2277 bytes
.../usage/importing-tested-functions.mdx | 91 ++
versioned_docs/version-v5/usage/mocking.mdx | 315 +++++
versioned_docs/version-v5/usage/modules.mdx | 293 ++++
versioned_docs/version-v5/usage/output.mdx | 94 ++
.../version-v5/usage/setup-and-teardown.mdx | 273 ++++
versioned_docs/version-v5/usage/skip.mdx | 128 ++
versioned_docs/version-v5/usage/tags.mdx | 90 ++
.../version-v5/usage/test-file-structure.mdx | 213 +++
.../version-v5/usage/test-results.mdx | 108 ++
versioned_docs/version-v5/usage/testdrive.mdx | 81 ++
.../version-v5/usage/testregistry.mdx | 40 +
.../version-v5/usage/troubleshooting.mdx | 49 +
versioned_docs/version-v5/usage/vscode.mdx | 22 +
versioned_sidebars/version-v5-sidebars.json | 79 ++
versions.json | 1 +
86 files changed, 11555 insertions(+), 3 deletions(-)
create mode 100644 versioned_docs/version-v5/additional-resources/articles.mdx
create mode 100644 versioned_docs/version-v5/additional-resources/articles.table.js
create mode 100644 versioned_docs/version-v5/additional-resources/courses.mdx
create mode 100644 versioned_docs/version-v5/additional-resources/courses.table.js
create mode 100644 versioned_docs/version-v5/additional-resources/misc.mdx
create mode 100644 versioned_docs/version-v5/additional-resources/misc.table.js
create mode 100644 versioned_docs/version-v5/additional-resources/projects.mdx
create mode 100644 versioned_docs/version-v5/additional-resources/projects.table.js
create mode 100644 versioned_docs/version-v5/additional-resources/videos.mdx
create mode 100644 versioned_docs/version-v5/additional-resources/videos.table.js
create mode 100644 versioned_docs/version-v5/assertions/assertions.mdx
create mode 100644 versioned_docs/version-v5/assertions/custom-assertions.mdx
create mode 100644 versioned_docs/version-v5/assertions/should-command.mdx
create mode 100644 versioned_docs/version-v5/commands/Add-ShouldOperator.mdx
create mode 100644 versioned_docs/version-v5/commands/AfterAll.mdx
create mode 100644 versioned_docs/version-v5/commands/AfterEach.mdx
create mode 100644 versioned_docs/version-v5/commands/Assert-MockCalled.mdx
create mode 100644 versioned_docs/version-v5/commands/Assert-VerifiableMock.mdx
create mode 100644 versioned_docs/version-v5/commands/BeforeAll.mdx
create mode 100644 versioned_docs/version-v5/commands/BeforeDiscovery.mdx
create mode 100644 versioned_docs/version-v5/commands/BeforeEach.mdx
create mode 100644 versioned_docs/version-v5/commands/Context.mdx
create mode 100644 versioned_docs/version-v5/commands/ConvertTo-JUnitReport.mdx
create mode 100644 versioned_docs/version-v5/commands/ConvertTo-NUnitReport.mdx
create mode 100644 versioned_docs/version-v5/commands/ConvertTo-Pester4Result.mdx
create mode 100644 versioned_docs/version-v5/commands/Describe.mdx
create mode 100644 versioned_docs/version-v5/commands/Export-JUnitReport.mdx
create mode 100644 versioned_docs/version-v5/commands/Export-NUnitReport.mdx
create mode 100644 versioned_docs/version-v5/commands/Get-ShouldOperator.mdx
create mode 100644 versioned_docs/version-v5/commands/InModuleScope.mdx
create mode 100644 versioned_docs/version-v5/commands/Invoke-Pester.mdx
create mode 100644 versioned_docs/version-v5/commands/It.mdx
create mode 100644 versioned_docs/version-v5/commands/Mock.mdx
create mode 100644 versioned_docs/version-v5/commands/New-Fixture.mdx
create mode 100644 versioned_docs/version-v5/commands/New-MockObject.mdx
create mode 100644 versioned_docs/version-v5/commands/New-PesterConfiguration.mdx
create mode 100644 versioned_docs/version-v5/commands/New-PesterContainer.mdx
create mode 100644 versioned_docs/version-v5/commands/Set-ItResult.mdx
create mode 100644 versioned_docs/version-v5/commands/Should.mdx
create mode 100644 versioned_docs/version-v5/commands/docusaurus.sidebar.js
create mode 100644 versioned_docs/version-v5/contributing/feature-requests.mdx
create mode 100644 versioned_docs/version-v5/contributing/introduction.mdx
create mode 100644 versioned_docs/version-v5/contributing/pull-requests.mdx
create mode 100644 versioned_docs/version-v5/contributing/reporting-issues.mdx
create mode 100644 versioned_docs/version-v5/index.html
create mode 100644 versioned_docs/version-v5/introduction/installation.mdx
create mode 100644 versioned_docs/version-v5/migrations/breaking-changes-in-v5.mdx
create mode 100644 versioned_docs/version-v5/migrations/v3-to-v4.mdx
create mode 100644 versioned_docs/version-v5/migrations/v4-to-v5.mdx
create mode 100644 versioned_docs/version-v5/quick-start.mdx
create mode 100644 versioned_docs/version-v5/usage/_GetEmoji.mdx
create mode 100644 versioned_docs/version-v5/usage/_PesterDemoFunctions.mdx
create mode 100644 versioned_docs/version-v5/usage/code-coverage.mdx
create mode 100644 versioned_docs/version-v5/usage/configuration.mdx
create mode 100644 versioned_docs/version-v5/usage/data-driven-tests.mdx
create mode 100644 versioned_docs/version-v5/usage/discovery-and-run.mdx
create mode 100644 versioned_docs/version-v5/usage/file-placement-and-naming.mdx
create mode 100644 versioned_docs/version-v5/usage/images/azuredevops-log.png
create mode 100644 versioned_docs/version-v5/usage/images/azuredevops-report.png
create mode 100644 versioned_docs/version-v5/usage/images/github-log.png
create mode 100644 versioned_docs/version-v5/usage/images/github-report.png
create mode 100644 versioned_docs/version-v5/usage/images/minimal-output.gif
create mode 100644 versioned_docs/version-v5/usage/images/output-detailed.png
create mode 100644 versioned_docs/version-v5/usage/images/output-diagnostic.png
create mode 100644 versioned_docs/version-v5/usage/images/output-normal.png
create mode 100644 versioned_docs/version-v5/usage/images/single-test.gif
create mode 100644 versioned_docs/version-v5/usage/images/stacktrace-filtered.png
create mode 100644 versioned_docs/version-v5/usage/images/stacktrace-firstline.png
create mode 100644 versioned_docs/version-v5/usage/images/stacktrace-full.png
create mode 100644 versioned_docs/version-v5/usage/images/stacktrace-none.png
create mode 100644 versioned_docs/version-v5/usage/importing-tested-functions.mdx
create mode 100644 versioned_docs/version-v5/usage/mocking.mdx
create mode 100644 versioned_docs/version-v5/usage/modules.mdx
create mode 100644 versioned_docs/version-v5/usage/output.mdx
create mode 100644 versioned_docs/version-v5/usage/setup-and-teardown.mdx
create mode 100644 versioned_docs/version-v5/usage/skip.mdx
create mode 100644 versioned_docs/version-v5/usage/tags.mdx
create mode 100644 versioned_docs/version-v5/usage/test-file-structure.mdx
create mode 100644 versioned_docs/version-v5/usage/test-results.mdx
create mode 100644 versioned_docs/version-v5/usage/testdrive.mdx
create mode 100644 versioned_docs/version-v5/usage/testregistry.mdx
create mode 100644 versioned_docs/version-v5/usage/troubleshooting.mdx
create mode 100644 versioned_docs/version-v5/usage/vscode.mdx
create mode 100644 versioned_sidebars/version-v5-sidebars.json
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 28be6d02..c94a62e3 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -150,13 +150,14 @@ module.exports = {
docs: {
sidebarPath: require.resolve('./sidebars.js'),
editUrl: 'https://github.com/pester/docs/edit/main',
- lastVersion: "current",
+ lastVersion: "v5", // Versioned v5-docs will keep /docs/.. URI while latest stable
includeCurrentVersion: true,
disableVersioning: false,
versions: {
+ // "current" is content in /docs folder
current: {
- label: "v5",
- path: "",
+ label: "v6 (preview) 🚧",
+ // path is /docs/next by default.
}
},
},
diff --git a/versioned_docs/version-v5/additional-resources/articles.mdx b/versioned_docs/version-v5/additional-resources/articles.mdx
new file mode 100644
index 00000000..f13ded06
--- /dev/null
+++ b/versioned_docs/version-v5/additional-resources/articles.mdx
@@ -0,0 +1,20 @@
+---
+id: articles
+title: Articles
+sidebar_label: Articles
+custom_edit_url: null
+description: Published articles about using Pester for testing PowerShell code, infrastructure and more
+---
+
+import { PesterDataTable, PesterDataButton } from "@site/src/components/PesterDataTable";
+import { columns, articles, moduleTests } from "./articles.table";
+
+
+
+
diff --git a/versioned_docs/version-v5/additional-resources/articles.table.js b/versioned_docs/version-v5/additional-resources/articles.table.js
new file mode 100644
index 00000000..83287a1f
--- /dev/null
+++ b/versioned_docs/version-v5/additional-resources/articles.table.js
@@ -0,0 +1,427 @@
+import React from "react";
+
+// ----------------------------------------------------------------------------
+// Please respect chronological (date) order when adding new entries.
+// ----------------------------------------------------------------------------
+export const articles = [
+ {
+ title: "Adding a code coverage badge to a PowerShell project",
+ author: "Mark Wragg",
+ date: "2018-05-14",
+ url: "http://wragg.io/add-a-code-coverage-badge-to-your-powershell-deployment-pipeline/",
+ },
+ {
+ title: "Azure Security Audits With Pester",
+ author: "Sam Cogan",
+ date: "2017-12-20",
+ url: "https://samcogan.com/azure-security-audits-with-pester",
+ },
+ {
+ title: "Handling Missing Instances when Looping with Pester",
+ author: "Rob Sewell",
+ date: "2017-11-30",
+ url: "https://sqldbawithabeard.com/2017/11/30/handling-missing-instances-when-looping-with-pester/",
+ },
+ {
+ title: "2 Ways to Loop through collections in Pester",
+ author: "Rob Sewell",
+ date: "2017-11-28",
+ url: "https://sqldbawithabeard.com/2017/11/28/2-ways-to-loop-through-collections-in-pester/",
+ },
+ {
+ title: "Building An Infrastructure Pipeline Part 2 - Testing",
+ author: "Sam Cogan",
+ date: "2017-11-27",
+ url: "https://samcogan.com/building-an-infrastructure-pipeline-part-2/",
+ },
+ {
+ title: "Writing and Using Custom Assertions for Pester Tests",
+ author: "Mathieu Buisson",
+ date: "2017-10-31",
+ url: "https://mathieubuisson.github.io/pester-custom-assertions/",
+ },
+ {
+ title: "Getting Started with Pester",
+ author: "Josh Duffney",
+ date: "2017-08-23",
+ url: "http://duffney.io/GettingStartedWithPester",
+ },
+ {
+ title: "Writing Dynamic and Random Tests Cases for Pester",
+ author: "Rob Sewell",
+ date: "2017-07-06",
+ url: "https://sqldbawithabeard.com/2017/07/06/writing-dynamic-and-random-tests-cases-for-pester/",
+ },
+ {
+ title: "Unit Testing with Pester : Storing complex Mock objects in a JSON file",
+ author: "Mathieu Buisson",
+ date: "2017-02-14",
+ url: "https://mathieubuisson.github.io/storing-mock-objects-in-json/",
+ },
+ {
+ title: "Mocking New-Object in Pester with PowerShell classes",
+ author: "Ben Taylor",
+ date: "2017-01-10",
+ url: "https://bentaylor.work/2017/01/mocking-new-object-in-pester-with-powershell-classes/",
+ },
+ {
+ title: "Writing Pester Tests",
+ author: "PowerShell Community",
+ date: "2016-11-07",
+ url: "https://github.com/PowerShell/PowerShell/blob/master/docs/testing-guidelines/WritingPesterTests.md",
+ },
+ {
+ title: "Functional / Non-Functional Pester Tests and why I think you really should have a form of both.",
+ author: "Ryan Yates",
+ date: "2016-07-21",
+ url:
+ "http://blog.kilasuit.org/2016/07/21/functional-non-functional-pester-tests-and-why-i-think-you-really-should-have-a-form-of-both/",
+ },
+ {
+ title: "Unit tests versus integration tests in Pester",
+ author: "Adam Bertram",
+ date: "2016-07-21",
+ url: "https://4sysops.com/archives/unit-tests-versus-integration-tests-in-pester/#integration-tests",
+ },
+ {
+ title: "A Boilerplate for Unit testing DSC resources with Pester",
+ author: "Mathieu Buisson",
+ date: "2016-07-12",
+ url: "https://mathieubuisson.github.io/unit-testing-dsc-resources/",
+ },
+ {
+ title: "Pester, Jenkins, Remote & ExitCode",
+ author: "Fabien Dibot",
+ date: "2016-07-02",
+ url: "https://pwrshell.net/pester-jenkins-remote-exitcode/",
+ },
+ {
+ title: "Using Visual Studio Code to develop VSTS Build Tasks with PowerShell and Pester tests",
+ author: "Richard Fennell",
+ date: "2016-06-27",
+ url:
+ "http://blogs.blackmarble.co.uk/blogs/rfennell/post/2016/06/21/Using-Visual-Studio-Code-to-develop-VSTS-Build-Tasks-with-PowerShell-and-Pester-tests",
+ },
+ {
+ title: "Visualizing Operational Tests with Jenkins and Pester",
+ author: "Bill Hurt",
+ date: "2016-06-25",
+ url: "https://scripting.tech/2016/06/25/visualizing-operational-tests-with-jenkins-and-pester/",
+ },
+ {
+ title: "Testing Pester Code Coverage",
+ author: "June Blender",
+ date: "2016-06-24",
+ url: "https://www.sapien.com/blog/2016/06/24/testing-pester-code-coverage/",
+ },
+ {
+ title: "The Pester Pipeline",
+ author: "Christopher Hunt",
+ date: "2016-06-21",
+ url: "https://www.automatedops.com/blog/2016/06/21/the-pester-pipeline/",
+ },
+ {
+ title: "How to Pass Parameters to a Pester Test Script",
+ author: "June Blender",
+ date: "2016-06-17",
+ url: "https://www.sapien.com/blog/2016/06/17/how-to-pass-parameters-to-a-pester-test-script/",
+ },
+
+ {
+ title: "Remediating vSphere Configuration Drift with PowerShell Pester Tests",
+ author: "Chris Wahl",
+ date: "2016-06-17",
+ url: "http://wahlnetwork.com/2016/06/16/remediating-vsphere-configuration-drift-powershell-pester-tests/",
+ },
+ {
+ title: "Generic Pester Tests",
+ author: "Nicholas M. Getchell",
+ date: "2016-06-16",
+ url: "https://powershell.getchell.org/2016/05/16/generic-pester-tests/",
+ },
+ {
+ title: "Invoke-Pester: Running Selected Tests",
+ author: "June Blender",
+ date: "2016-06-15",
+ url: "https://www.sapien.com/blog/2016/06/15/invoke-pester-run-selected-tests",
+ },
+ {
+ title: "How to Run a Pester Test",
+ author: "June Blender",
+ date: "2016-06-13",
+ url: "https://www.sapien.com/blog/2016/06/13/how-to-run-a-pester-test",
+ },
+ {
+ title: "Testing Active Directory with Pester and Powershell",
+ author: "Mark Wragg",
+ date: "2016-06-13",
+ url: "http://wragg.io/testing-active-directory-with-pester-and-powershell/",
+ },
+ {
+ title: "Active Directory ReportUnit Pester results",
+ author: "Irwin Strachan",
+ date: "2016-06-10",
+ url: "https://pshirwin.wordpress.com/2016/06/10/active-directory-reportunit-pester-results/",
+ },
+
+ {
+ title: "A different pitch for Pester",
+ author: "James O'Neill",
+ date: "2016-06-01",
+ url: "https://jamesone111.wordpress.com/2016/06/01/a-different-pitch-for-pester/",
+ },
+ {
+ title: "Help = Spec = Test",
+ author: "James O'Neill",
+ date: "2016-05-31",
+ url: "https://jamesone111.wordpress.com/2016/05/31/help-spec-test/",
+ },
+ {
+ title: "Writing #Pester based Unit Tests for #PowerShell Remoting",
+ author: "Nicholas Dille",
+ date: "2016-05-30",
+ url: "http://dille.name/blog/2016/05/30/writing-pester-based-unit-tests-for-powershell-remoting/",
+ },
+ {
+ title: "PowerShell – Pester and Invoke-ScriptAnalyzer",
+ author: "Ben Taylor",
+ date: "2016-05-27",
+ url: "http://bentaylor.work/2016/05/powershell-pester-and-invoke-scriptanalyzer/",
+ },
+ {
+ title:
+ "Creating a set of simple Pester Tests for existing or old PowerShell Modules & making them easier to update in future.",
+ author: "Ryan Yates",
+ date: "2016-05-24",
+ url:
+ "http://blog.kilasuit.org/2016/05/24/creating-a-set-of-simple-pester-tests-for-existing-or-old-powershell-modules-making-them-easier-to-update-in-future",
+ },
+ {
+ title: "PowerShell Pester assertions – Testing with the should command",
+ author: "Adam Bertram",
+ date: "2016-05-24",
+ url: "https://4sysops.com/archives/powershell-pester-assertions-testing-with-the-should-command",
+ },
+ {
+ title: "How To Test PowerShell Modules with Pester",
+ author: "Adam Bertram",
+ date: "2016-05-19",
+ url: "http://mattmcnabb.github.io/Pester-For-PowerShell-Gallery",
+ },
+ {
+ title: "Download Free Pester Cheat Sheet",
+ author: "Kaj Bonfils",
+ date: "2016-05-18",
+ url: "https://kajbonfils.com/2016/05/download-free-pester-cheat-sheet/",
+ },
+ {
+ title: "Testing Your Module Manifest With Pester - Revisited",
+ author: "Matt McNabb",
+ date: "2016-05-18",
+ url: "http://mattmcnabb.github.io/Pester-For-PowerShell-Gallery",
+ },
+ {
+ title: "Using Pester to test your Manifest File",
+ author: "Francois-Xavier Cat",
+ date: "2016-05-11",
+ url: "http://www.lazywinadmin.com/2016/05/using-pester-to-test-your-manifest-file.html",
+ },
+ {
+ title: "Using Pester to test your Comment Based Help",
+ author: "Francois-Xavier Cat",
+ date: "2016-05-10",
+ url: "http://www.lazywinadmin.com/2016/05/using-pester-to-test-your-comment-based.html",
+ },
+ {
+ title: "Mocking SQL Results in Pester",
+ author: "Nick Hudacin",
+ date: "2016-04-28",
+ url: "https://nickhudacin.wordpress.com/2016/04/28/mocking-sql-results-in-pester/",
+ },
+ {
+ title: "Constructing Private Test Credentials for Pester Testing",
+ author: "Chris Wahl",
+ date: "2016-04-27",
+ url: "http://wahlnetwork.com/2016/04/27/private-test-credentials-pester-testing/",
+ },
+ {
+ title: "Write Dynamic Unit Tests for your PowerShell Code with Pester",
+ author: "Mike F Robbins",
+ date: "2016-04-14",
+ url: "http://mikefrobbins.com/2016/04/14/write-dynamic-unit-tests-for-your-powershell-code-with-pester",
+ },
+ {
+ title: "Building a Simple Release Pipeline in PowerShell Using psake, Pester, and PSDeploy",
+ author: "Brandon Olin",
+ date: "2016-04-06",
+ url: "https://devblackops.io/building-a-simple-release-pipeline-in-powershell-using-psake-pester-and-psdeploy/",
+ },
+ {
+ title: "Invoking PSScriptAnalyzer in Pester Tests for each Rule",
+ author: "Ryan Yates",
+ date: "2016-03-29",
+ url: "http://blog.kilasuit.org/2016/03/29/invoking-psscriptanalyzer-in-pester-tests-for-each-rule/",
+ },
+ {
+ title: "An Easier Way to Control Pester Tests",
+ author: "Adam Bertram",
+ date: "2016-03-24",
+ url: "http://www.adamtheautomator.com/easier-way-control-pester-tests",
+ },
+ {
+ title: "Testing Script Modules with Pester",
+ author: "Dave Wyatt",
+ date: "2015-12-17",
+ url: "https://blogs.technet.microsoft.com/heyscriptingguy/2015/12/17/testing-script-modules-with-pester",
+ },
+ {
+ title: "Testing Script Modules with Pester - series",
+ author: "Dave Wyatt",
+ date: "2015-12-14",
+ url: "https://blogs.technet.microsoft.com/heyscriptingguy/2015/12/14/what-is-pester-and-why-should-i-care",
+ },
+ {
+ title: "Pester Explained: Describe, Context, and It Blocks",
+ author: "Jakub Jares",
+ date: "2015-12-03",
+ url: "http://www.powershellmagazine.com/2015/12/03/pester-explained-describe-context-and-it-blocks/",
+ },
+ {
+ title: "Pester Explained: Should",
+ author: "Jakub Jares",
+ date: "2015-12-02",
+ url: "http://www.powershellmagazine.com/2015/12/02/pester-explained-should/",
+ },
+ {
+ title: "Pester Explained: Introduction and Assertions",
+ author: "Jakub Jares",
+ date: "2015-12-01",
+ url: "http://www.powershellmagazine.com/2015/12/01/pester-explained-introduction-and-assertions/",
+ },
+ {
+ title: "Comparing Objects using JSON in PowerShell for Pester Tests",
+ author: "Daniel Scott-Raynsford",
+ date: "2015-08-23",
+ url:
+ "https://dscottraynsford.wordpress.com/2015/08/23/comparing-objects-using-json-in-powershell-for-pester-tests/",
+ },
+ {
+ title: "Pester: Triangulation and reusing test cases",
+ author: "Jakub Jares",
+ date: "2015-06-04",
+ url: "http://www.powershellmagazine.com/2015/06/04/pester-triangulation-and-reusing-test-cases/",
+ },
+ {
+ title: "Boost your productivity with Pester snippets",
+ author: "Jakub Jares",
+ date: "2015-01-13",
+ url: "http://www.powershellmagazine.com/2015/01/13/boost-your-productivity-with-pester-snippets/",
+ },
+ {
+ title: "Build your Azure lab with DSC and validate it using Pester – 2/3",
+ author: "Fabien Dibot",
+ date: "2015-01-04",
+ url: "https://pwrshell.net/build-your-azure-lab-with-dsc-and-validate-it-using-pester-23/",
+ },
+ {
+ title: "Build your Azure lab with DSC and validate it using Pester – 1/3",
+ author: "Fabien Dibot",
+ date: "2014-12-27",
+ url: "https://pwrshell.net/build-your-azure-lab-with-dsc-and-validate-it-using-pester-13/",
+ },
+ {
+ title: "Create your first Pester script to test a DSC resource",
+ author: "Fabien Dibot",
+ date: "2014-11-30",
+ url: "https://pwrshell.net/create-your-first-pester-script-to-test-a-dsc-resource/",
+ },
+ {
+ title: "Practical PowerShell Unit-Testing: Checking program flow",
+ author: "Michael Sorens",
+ date: "2014-11-05",
+ url: "https://www.simple-talk.com/sysadmin/powershell/practical-powershell-unit-testing-checking-program-flow",
+ },
+ {
+ title: "Practical PowerShell Unit-Testing: Mock Objects",
+ author: "Michael Sorens",
+ date: "2014-11-04",
+ url: "https://www.simple-talk.com/sysadmin/powershell/practical-powershell-unit-testing-mock-objects",
+ },
+ {
+ title: "Practical PowerShell Unit-Testing: Getting Started",
+ author: "Michael Sorens",
+ date: "2014-11-03",
+ url: "https://www.simple-talk.com/sysadmin/powershell/practical-powershell-unit-testing-getting-started",
+ },
+ {
+ title:
+ "Configure and test windows infrastructure using Powershell technologies DSC and Pester running from Chef and Test-Kitchen",
+ author: "Matt Wrock",
+ date: "2014-10-13",
+ url:
+ "http://www.hurryupandwait.io/blog/configure-and-test-windows-infrastructure-using-powershell-technologies-dsc-and-pester-running-from-chef-and-test-kitchen",
+ },
+ {
+ title: "Pester Mock and TestDrive",
+ author: "Jakub Jares",
+ date: "2014-09-30",
+ url: "http://www.powershellmagazine.com/2014/09/30/pester-mock-and-testdrive/",
+ },
+ {
+ title: "Growing an Open Source Project: The Pester Story",
+ author: "Scott Muc",
+ date: "2014-08-07",
+ url: "http://scottmuc.com/growing-an-open-source-project-the-pester-story/",
+ },
+ {
+ title: "Testing your PowerShell scripts with Pester: Assertions and more",
+ author: "Jakub Jares",
+ date: "2014-03-27",
+ url:
+ "http://www.powershellmagazine.com/2014/03/27/testing-your-powershell-scripts-with-pester-assertions-and-more/",
+ },
+ {
+ title: "Get started with Pester (PowerShell unit testing framework",
+ author: "Jakub Jares",
+ date: "2014-03-12",
+ url: "http://www.powershellmagazine.com/2014/03/12/get-started-with-pester-powershell-unit-testing-framework/",
+ },
+ {
+ title: "PowerShell BDD Testing - Pester Screencast",
+ author: "Scott Muc",
+ date: "2011-08-25",
+ url: "http://scottmuc.com/blog/development/powershell-bdd-testing-pester-screencast/",
+ },
+ {
+ title: "Pester - PowerShell BDD Style Testing for the System Administrator",
+ author: "Scott Muc",
+ date: "2011-03-11",
+ url: "http://scottmuc.com/blog/development/pester-bdd-for-the-system-administrator/",
+ },
+];
+
+// ----------------------------------------------------------------------------
+// PesterDataTable column definition
+// ----------------------------------------------------------------------------
+export const columns = [
+ {
+ header: "Title",
+ accessorKey: "title",
+ className: "pester-data-table left",
+ cell: ({ cell, row: { original } }) => (
+
+ {cell.getValue()}
+
+ ),
+ },
+ {
+ header: "Author",
+ accessorKey: "author",
+ className: "pester-data-table left",
+ },
+ {
+ header: "Date",
+ accessorKey: "date",
+ className: "pester-data-table nowrap",
+ },
+];
diff --git a/versioned_docs/version-v5/additional-resources/courses.mdx b/versioned_docs/version-v5/additional-resources/courses.mdx
new file mode 100644
index 00000000..51a2e9e7
--- /dev/null
+++ b/versioned_docs/version-v5/additional-resources/courses.mdx
@@ -0,0 +1,20 @@
+---
+id: courses
+title: Courses
+sidebar_label: Courses
+custom_edit_url: null
+description: List of known courses about learning and using Pester for testing PowerShell
+---
+
+import { PesterDataTable, PesterDataButton } from "@site/src/components/PesterDataTable";
+import { columns, courses } from "./courses.table";
+
+
+
+
diff --git a/versioned_docs/version-v5/additional-resources/courses.table.js b/versioned_docs/version-v5/additional-resources/courses.table.js
new file mode 100644
index 00000000..b5069ccb
--- /dev/null
+++ b/versioned_docs/version-v5/additional-resources/courses.table.js
@@ -0,0 +1,38 @@
+import React from "react";
+
+// ----------------------------------------------------------------------------
+// Please respect alphabetical (title) order when adding new entries.
+// ----------------------------------------------------------------------------
+export const courses = [
+ {
+ title: "Testing PowerShell with Pester",
+ author: "Ashley McGlone, Adam Bertram",
+ url: "https://mva.microsoft.com/en-US/training-courses/17650?l=mg8oBM9vD_8811787177",
+ },
+ {
+ title: "PSKoans - A simple, fun, and interactive way to learn the PowerShell language through Pester unit testing",
+ author: "Joel Sallow and a Community",
+ url: "https://github.com/vexx32/PSKoans",
+ },
+];
+
+// ----------------------------------------------------------------------------
+// PesterDataTable column definition
+// ----------------------------------------------------------------------------
+export const columns = [
+ {
+ header: "Title",
+ accessorKey: "title",
+ className: "pester-data-table left",
+ cell: ({ cell, row: { original } }) => (
+
+ {cell.getValue()}
+
+ ),
+ },
+ {
+ header: "Author",
+ accessorKey: "author",
+ className: "pester-data-table left",
+ },
+];
diff --git a/versioned_docs/version-v5/additional-resources/misc.mdx b/versioned_docs/version-v5/additional-resources/misc.mdx
new file mode 100644
index 00000000..f0d8c5f9
--- /dev/null
+++ b/versioned_docs/version-v5/additional-resources/misc.mdx
@@ -0,0 +1,38 @@
+---
+id: misc
+title: Miscellaneous
+sidebar_label: Misc
+custom_edit_url: null
+description: Integrations, books and other resources about using Pester
+---
+
+import { PesterDataTable, PesterDataButton } from "@site/src/components/PesterDataTable";
+import { columns, integrations, books } from "./misc.table";
+
+## Integrations
+
+
+
+## Paid resources
+
+### Books
+
+
+
+## TBD
+
+Waiting to be re-read and added
+
+- [mikefrobbins.com](http://mikefrobbins.com/?s=pester)
+- [powershell.org](https://powershell.org)
+
+
diff --git a/versioned_docs/version-v5/additional-resources/misc.table.js b/versioned_docs/version-v5/additional-resources/misc.table.js
new file mode 100644
index 00000000..a52af9cb
--- /dev/null
+++ b/versioned_docs/version-v5/additional-resources/misc.table.js
@@ -0,0 +1,51 @@
+import React from "react";
+
+// ----------------------------------------------------------------------------
+// Please respect chronological (date) order when adding new integrations.
+// ----------------------------------------------------------------------------
+export const integrations = [
+ {
+ title: "VSCode snippets for Pester",
+ author: "Adam Bertram",
+ date: "2017-03-07",
+ url: "https://forums.powershell.org/t/vscode-snippets-for-pester/8195",
+ },
+];
+
+// ----------------------------------------------------------------------------
+// Please respect chronological (date) order when adding new books.
+// ----------------------------------------------------------------------------
+export const books = [
+ {
+ title: "The Pester Book",
+ author: "Adam Bertram",
+ date: "2017-08-01",
+ url: "http://www.leanpub.com/pesterbook",
+ },
+];
+
+// ----------------------------------------------------------------------------
+// PesterDataTable column definition
+// ----------------------------------------------------------------------------
+export const columns = [
+ {
+ header: "Title",
+ accessorKey: "title",
+ className: "pester-data-table left",
+ cell: ({ cell, row: { original } }) => (
+
+ {cell.getValue()}
+
+ ),
+ },
+ {
+ header: "Author",
+ accessorKey: "author",
+ className: "pester-data-table left",
+ },
+ {
+ header: "Date",
+ accessorKey: "date",
+ className: "pester-data-table nowrap",
+ },
+];
diff --git a/versioned_docs/version-v5/additional-resources/projects.mdx b/versioned_docs/version-v5/additional-resources/projects.mdx
new file mode 100644
index 00000000..1ba1690c
--- /dev/null
+++ b/versioned_docs/version-v5/additional-resources/projects.mdx
@@ -0,0 +1,24 @@
+---
+id: projects
+title: Projects
+sidebar_label: Projects
+custom_edit_url: null
+description: List of third-party modules and projects that extend or compliment Pester
+---
+
+import { PesterDataTable, PesterDataButton } from "@site/src/components/PesterDataTable";
+import { columns, projects } from "./projects.table";
+
+
+
+:::note Compatibility
+Many projects above were designed for earlier versions of Pester and might not yet be updated to support Pester v5.
+:::
+
+
diff --git a/versioned_docs/version-v5/additional-resources/projects.table.js b/versioned_docs/version-v5/additional-resources/projects.table.js
new file mode 100644
index 00000000..7cb6ef7e
--- /dev/null
+++ b/versioned_docs/version-v5/additional-resources/projects.table.js
@@ -0,0 +1,93 @@
+import React from "react";
+
+// ----------------------------------------------------------------------------
+// Please respect alphabetical (title) order when adding new entries.
+// ----------------------------------------------------------------------------
+export const projects = [
+ {
+ title: "Assert",
+ author: "Jakub Jares",
+ url: "https://github.com/nohwnd/Assert",
+ },
+ {
+ title: "Format-Pester",
+ author: "Erwan Quelin",
+ url: "https://github.com/equelin/Format-Pester",
+ },
+ {
+ title: "PesterHelpers",
+ author: "Ryan Yates",
+ url: "https://github.com/PowerShellModules/PesterHelpers",
+ },
+ {
+ title: "PowershellGuard",
+ author: "Steven Murawski",
+ url: "https://github.com/smurawski/PowerShellGuard",
+ },
+ {
+ title: "PesterOperationsTest",
+ author: "Tore Groneng",
+ url: "https://github.com/torgro/PesterOperationTest",
+ },
+ {
+ title: "PestWatch",
+ author: "Ed Elliott",
+ url: "https://github.com/GOEddie/PestWatch",
+ },
+ {
+ title: "PoshSpec",
+ author: "Chris Hunt",
+ url: "https://github.com/Ticketmaster/poshspec",
+ },
+ {
+ title: "PowerShell Pester Dashboard Kickstarter",
+ author: "Josh Castillo",
+ url: "https://github.com/doesitscript/PSPesterDashboardKickstarter/tree/develop",
+ },
+ {
+ title: "PesterMatchArray",
+ author: "Stuart Leeks",
+ url: "https://github.com/stuartleeks/PesterMatchArray",
+ },
+ {
+ title: "PesterMatchHashtable",
+ author: "Stuart Leeks",
+ url: "https://github.com/stuartleeks/PesterMatchHashtable",
+ },
+ {
+ title: "Remotely",
+ author: "Ravikanth Chaganti",
+ url: "https://github.com/rchaganti/Remotely",
+ },
+ {
+ title: "Vester",
+ author: "Chris Wahl",
+ url: "https://github.com/WahlNetwork/Vester",
+ },
+ {
+ title: "Watchmen",
+ author: "Brandon Olin",
+ url: "https://github.com/devblackops/watchmen",
+ },
+];
+
+// ----------------------------------------------------------------------------
+// PesterDataTable column definition
+// ----------------------------------------------------------------------------
+export const columns = [
+ {
+ header: "Title",
+ accessorKey: "title",
+ className: "pester-data-table left",
+ cell: ({ cell, row: { original } }) => (
+
+ {cell.getValue()}
+
+ ),
+ },
+ {
+ header: "Author",
+ accessorKey: "author",
+ className: "pester-data-table left",
+ },
+];
diff --git a/versioned_docs/version-v5/additional-resources/videos.mdx b/versioned_docs/version-v5/additional-resources/videos.mdx
new file mode 100644
index 00000000..4ecbce6b
--- /dev/null
+++ b/versioned_docs/version-v5/additional-resources/videos.mdx
@@ -0,0 +1,20 @@
+---
+id: videos
+title: Videos
+sidebar_label: Videos
+custom_edit_url: null
+description: List of videos about using Pester and PowerShell testing provided by the community
+---
+
+import { PesterDataTable, PesterDataButton } from "@site/src/components/PesterDataTable";
+import { columns, videos } from "./videos.table";
+
+
+
+
diff --git a/versioned_docs/version-v5/additional-resources/videos.table.js b/versioned_docs/version-v5/additional-resources/videos.table.js
new file mode 100644
index 00000000..a91f1140
--- /dev/null
+++ b/versioned_docs/version-v5/additional-resources/videos.table.js
@@ -0,0 +1,87 @@
+import React from "react";
+
+// ----------------------------------------------------------------------------
+// Please respect chronological (date) order when adding new entries.
+// ----------------------------------------------------------------------------
+export const videos = [
+ {
+ title: "Custom Pester assertions are the vocabulary of your tests",
+ author: "Jakub Jares",
+ date: "2019-07-19",
+ url: "https://www.youtube.com/watch?v=WYw23cGoKco",
+ },
+ {
+ title: "Beyond Pester 102: Acceptance testing with PowerShell",
+ author: "Glenn Sarti",
+ date: "2019-05-18",
+ url: "https://www.youtube.com/watch?v=L-1nXtaQ6YM",
+ },
+ {
+ title: "Mastering PowerShell testing with Pester",
+ author: "Mark Wragg",
+ date: "2018-10-10",
+ url: "https://www.youtube.com/watch?v=BbOiQCgDDR8",
+ },
+ {
+ title: "Beyond Pester 101: Applying testing principles to PowerShell",
+ author: "Glenn Sarti",
+ date: "2018-05-03",
+ url: "https://www.youtube.com/watch?v=NrUxgSaFvtk",
+ },
+ {
+ title: "Introduction to testing with Pester",
+ author: "Jakub Jares",
+ date: "2017-04-08",
+ url: "https://www.youtube.com/watch?v=F3oOk0BC9B4",
+ },
+ {
+ title: "Testing PowerShell with Pester",
+ author: "Robert Cain",
+ date: "2016-06-18",
+ url: "https://www.pluralsight.com/courses/powershell-testing-pester",
+ },
+ {
+ title: "Pester the Tester PowerShell Bugs Beware",
+ author: "Robert Cain",
+ date: "2016-06-14",
+ url: "https://www.youtube.com/watch?v=o4ihc7atwYQ",
+ },
+ {
+ title: "Test-Driven Development with Pester",
+ author: "June Blender",
+ date: "2016-05-21",
+ url: "https://www.youtube.com/watch?v=gssAtCeMOoo",
+ },
+ {
+ title: "Pester in Action - series",
+ author: "Kevin Marquett",
+ date: "2015-11-11",
+ url: "https://www.youtube.com/playlist?list=PLOcTmsj9WHDo2_FfKePLaq_mJTcnW_fEJ",
+ },
+];
+
+// ----------------------------------------------------------------------------
+// PesterDataTable column definition
+// ----------------------------------------------------------------------------
+export const columns = [
+ {
+ header: "Title",
+ accessorKey: "title",
+ className: "pester-data-table left",
+ cell: ({ cell, row: { original } }) => (
+
+ {cell.getValue()}
+
+ ),
+ },
+ {
+ header: "Author",
+ accessorKey: "author",
+ className: "pester-data-table left",
+ },
+ {
+ header: "Date",
+ accessorKey: "date",
+ className: "pester-data-table nowrap",
+ },
+];
diff --git a/versioned_docs/version-v5/assertions/assertions.mdx b/versioned_docs/version-v5/assertions/assertions.mdx
new file mode 100644
index 00000000..2c67cb75
--- /dev/null
+++ b/versioned_docs/version-v5/assertions/assertions.mdx
@@ -0,0 +1,392 @@
+---
+id: assertions
+title: Assertion Reference
+description: Introduction to the built-in assertion operators in Pester to get you started with the most common scenarios
+---
+
+`Should` is a command that provides assertion convenience methods for comparing objects and throwing test failures when test expectations fail. `Should` is used inside `It` blocks of a Pester test script.
+
+## Common parameters
+
+### Negative Assertions
+
+When reviewing the operators listed below, keep in mind that all of them can be negated by putting the word "Not" between "Should" and the operator. For example:
+
+```powershell
+$true | Should -Be $true
+$true | Should -Not -Be $false
+```
+
+### Because
+
+Lets you to add an optional message to the default test error message to tell the user why the test should pass. Example using `Get-Planet` from [Quick Start](../quick-start#creating-a-pester-test):
+
+```powershell
+$mPlanets = Get-Planet -Name M*
+$mPlanets.Name + @('Earth') | Should -Be 'Mercury','Mars' -Because 'those are the only two planets starting with M'
+# OUTPUT
+# Expected @('Mercury', 'Mars'), because those are the only two planets starting with M, but got @('Mercury', 'Mars', 'Earth').
+```
+
+## Should Operators
+
+You can find a list of all operators included in Pester below. You may also use [Get-ShouldOperator](../commands/Get-ShouldOperator) to list the available operators, their aliases and help inside PowerShell.
+
+You may also create custom operators to support more complex assertions, see [Custom Assertions](./custom-assertions).
+
+### Be
+
+Compares one object with another for equality and throws if the two objects are not the same. This comparison is not case sensitive.
+
+```powershell
+$actual="Actual value"
+$actual | Should -Be "actual value" # Test will pass
+$actual | Should -Be "not actual value" # Test will fail
+```
+
+Also compares an entire array for equality and throws if the array is not the same.
+
+```powershell
+$array = @(1, 2, 3, 4, 'I am a string', (New-Object psobject -Property @{ IAm = 'An Object' }))
+$array | Should -Be $array # Test will pass
+
+$string = 'I am a string'
+$array = @(1, 2, 3, 4, $string)
+$arrayWithCaps = @(1, 2, 3, 4, $string.ToUpper())
+$array | Should -Be $arrayWithCaps # Test will pass
+```
+
+Comparisons will fail if the arrays have the same values, but not the same order.
+
+```powershell
+[int32[]]$array = (1..10)
+$arrayoutoforder = (1,10,2,3,4,5,6,7,8,9)
+$array | Should -Be $arrayOutOfOrder # Test will fail
+```
+
+### BeExactly
+
+Compares one object with another for equality and throws if the two objects are not the same. This comparison is case sensitive.
+
+```powershell
+$actual="Actual value"
+$actual | Should -BeExactly "Actual value" # Test will pass
+$actual | Should -BeExactly "actual value" # Test will fail
+```
+
+### BeFalse
+
+Asserts that the value is false, or falsy.
+
+```powershell
+$false | Should -BeFalse
+0 | Should -BeFalse
+$null | Should -BeFalse
+```
+
+### BeGreaterOrEqual
+
+Asserts that a number (or other comparable value) is greater than or equal to an expected value. Uses PowerShell's -ge operator to compare the two values.
+
+```powershell
+2 | Should -BeGreaterOrEqual 0
+2 | Should -BeGreaterOrEqual 2
+```
+
+### BeGreaterThan
+
+Asserts that a number is greater than an expected value. Uses PowerShell's -gt operator to compare the two values.
+
+```powershell
+$Error.Count | Should -BeGreaterThan 0
+[version]'2.3.4.5' | Should -BeGreaterThan ([version]'1.0.0.1')
+(Get-Date).AddMinutes(5) | Should -BeGreaterThan (Get-Date)
+```
+
+### BeIn
+
+Asserts that the actual value is present in the array/collection
+
+```powershell
+'b' | Should -BeIn @('a','b','c')
+27 | Should -BeIn (1..100)
+```
+
+### BeLessOrEqual
+
+Asserts that a number (or other comparable value) is lower than, or equal to an expected value. Uses PowerShell's -le operator to compare the two values.
+
+```powershell
+1 | Should -BeLessOrEqual 10
+10 | Should -BeLessOrEqual 10
+```
+
+### BeLessThan
+
+Asserts that a number is less than an expected value. Uses PowerShell's -lt operator to compare the two values.
+
+```powershell
+$Error.Count | Should -BeLessThan 1
+```
+
+### BeLike
+
+Asserts that the actual value matches a wildcard pattern using PowerShell's -like operator. This comparison is not case-sensitive.
+
+```powershell
+$actual="Actual value"
+$actual | Should -BeLike "actual *" # Test will pass
+$actual | Should -BeLike "not actual *" # Test will fail
+```
+
+### BeLikeExactly
+
+Asserts that the actual value matches a wildcard pattern using PowerShell's -clike operator. This comparison is case-sensitive.
+
+```powershell
+$actual="Actual value"
+$actual | Should -BeLikeExactly "Actual *" # Test will pass
+$actual | Should -BeLikeExactly "actual *" # Test will fail
+```
+
+### BeNullOrEmpty
+
+Checks values for null or empty (strings). The static [String]::IsNullOrEmpty() method is used to do the comparison.
+
+```powershell
+$null | Should -BeNullOrEmpty # Test will pass
+@() | Should -BeNullOrEmpty # Test will pass
+"" | Should -BeNullOrEmpty # Test will pass
+
+$null | Should -Not -BeNullOrEmpty # Test will fail
+```
+
+### BeOfType
+
+Asserts that the actual value should be an object of a specified type (or a subclass of the specified type) using PowerShell's -is operator:
+
+```powershell
+$actual = Get-Item $env:SystemRoot
+$actual | Should -BeOfType System.IO.DirectoryInfo # Test will pass; object is a DirectoryInfo
+$actual | Should -BeOfType System.IO.FileSystemInfo # Test will pass; DirectoryInfo base class is FileSystemInfo
+
+$actual | Should -BeOfType System.IO.FileInfo # Test will fail; FileInfo is not a base class of DirectoryInfo
+```
+
+:::note
+
+This currently only works for .NET types. For custom type name, added using PSTypeNames, you need to use `$MyClass.GetType().Name | Should -Be "MyClassName"`. See [this issue](https://github.com/pester/Pester/issues/1315) for more information.
+
+:::
+
+### BeTrue
+
+Asserts that the value is true, or truthy.
+
+```powershell
+$true | Should -BeTrue
+1 | Should -BeTrue
+1,2,3 | Should -BeTrue
+```
+
+### Contain
+
+Asserts that the collection contains value specified using PowerShell's -contains operator.
+
+```powershell
+'a','b','c' | Should -Contain b
+1..100 | Should -Contain 42
+```
+
+### Exist
+
+Does not perform any comparison but checks if the object calling Exist is present in a PS Provider. The object must have valid path syntax. It essentially must pass a Test-Path call.
+
+```powershell
+$actual=(Dir . )[0].FullName
+Remove-Item $actual
+$actual | Should -Exist # Test will fail
+```
+
+To test path containing `[ ]` wildcards, escape each bracket with two back-ticks as such `"TestDrive:\``[test``].txt"` or use `Test-Path -LiteralPath $something | Should -Be $true`.
+
+### FileContentMatch
+
+Checks to see if a file contains the specified text. This search is not case sensitive and uses regular expressions.
+
+```powershell
+Set-Content -Path TestDrive:\file.txt -Value 'I am a file'
+'TestDrive:\file.txt' | Should -FileContentMatch 'I Am' # Test will pass
+'TestDrive:\file.txt' | Should -FileContentMatch '^I.*file$' # Test will pass
+
+'TestDrive:\file.txt' | Should -FileContentMatch 'I Am Not' # Test will fail
+```
+
+:::tip
+Use `[regex]::Escape("pattern")` to match the exact text.
+
+```powershell
+Set-Content -Path TestDrive:\file.txt -Value 'I am a file.'
+'TestDrive:\file.txt' | Should -FileContentMatch 'I.am.a.file' # Test will pass
+'TestDrive:\file.txt' | Should -FileContentMatch ([regex]::Escape('I.am.a.file')) # Test will fail
+```
+:::
+
+:::warning
+Make sure the input is either a quoted string or an Item object. Otherwise PowerShell will try to invoke the
+path, likely throwing an error `Cannot run a document in the middle of a pipeline`.
+
+```powershell
+c:\file.txt | Should -FileContentMatch something # Will throw an error
+'c:\file.txt' | Should -FileContentMatch something # Will evaluate correctly
+```
+:::
+
+### FileContentMatchExactly
+
+Checks to see if a file contains the specified text. This search is case sensitive and uses regular expressions to match the text.
+
+```powershell
+Set-Content -Path TestDrive:\file.txt -Value 'I am a file.'
+'TestDrive:\file.txt' | Should -FileContentMatchExactly 'I am' # Test will pass
+'TestDrive:\file.txt' | Should -FileContentMatchExactly 'I Am' # Test will fail
+```
+
+### FileContentMatchMultiline
+
+As opposed to FileContentMatch and FileContentMatchExactly operators, FileContentMatchMultiline presents content of the file being tested as one string object, so that the expression you are comparing it to can consist of several lines.
+
+```powershell
+$Content = "I am the first line.`nI am the second line."
+Set-Content -Path TestDrive:\file.txt -Value $Content -NoNewline
+'TestDrive:\file.txt' | Should -FileContentMatchMultiline 'first line\.\r?\nI am' # Test will pass
+'TestDrive:\file.txt' | Should -FileContentMatchMultiline '^I am the first.*\n.*second line\.$' # Test will pass.
+```
+
+When using FileContentMatchMultiline operator, `^` and `$` represent the beginning and end of the whole file, instead of the beginning and end of a line.
+
+```powershell
+$Content = "I am the first line.`nI am the second line."
+Set-Content -Path TestDrive:\file.txt -Value $Content -NoNewline
+'TestDrive:\file.txt' | Should -FileContentMatchMultiline '^I am the first line\.$' # Test will fail.
+```
+
+### FileContentMatchMultilineExactly
+
+As opposed to FileContentMatch and FileContentMatchExactly operators, FileContentMatchMultilineExactly presents content of the file being tested as one string object, so that the expression you are comparing it to can consist of several lines. This search is case sensitive and uses regular expressions to match the text.
+
+```powershell
+$Content = "I am the first line.`nI am the second line."
+Set-Content -Path TestDrive:\file.txt -Value $Content -NoNewline
+'TestDrive:\file.txt' | Should -FileContentMatchMultilineExactly 'first line\.\r?\nI am' # Test will pass
+'TestDrive:\file.txt' | Should -FileContentMatchMultilineExactly 'first line\.\r?\nI AM' # Test will fail
+'TestDrive:\file.txt' | Should -FileContentMatchMultilineExactly '^I am the first.*\n.*second line\.$' # Test will pass.
+'TestDrive:\file.txt' | Should -FileContentMatchMultilineExactly '^I AM THE FIRST.*\n.*second line\.$' # Test will fail.
+```
+
+When using FileContentMatchMultilineExactly operator, `^` and `$` represent the beginning and end of the whole file, instead of the beginning and end of a line.
+
+```powershell
+$Content = "I am the first line.`nI am the second line."
+Set-Content -Path TestDrive:\file.txt -Value $Content -NoNewline
+'TestDrive:\file.txt' | Should -FileContentMatchMultilineExactly '^I am the first line\.$' # Test will fail.
+```
+
+### HaveCount
+
+Asserts that a collection has the expected amount of items.
+
+```powershell
+1,2,3 | Should -HaveCount 3
+```
+
+### HaveParameter
+
+An assertion operator `-HaveParameter` allows you to check function parameters, and their properties like this:
+
+```powershell
+Get-Command "Invoke-WebRequest" | Should -HaveParameter Uri -Mandatory
+function f ([String] $Value = 8) { }
+Get-Command f | Should -HaveParameter Value -Type String
+Get-Command f | Should -Not -HaveParameter Name
+Get-Command f | Should -HaveParameter Value -DefaultValue 8
+Get-Command f | Should -HaveParameter Value -Not -Mandatory
+```
+
+### Invoke
+
+Checks if a mocked command has been called a certain number of times and throws an exception if it has not. See [Mocking](../usage/mocking) for more details.
+
+### InvokeVerifiable
+
+Checks if any verifiable Mock have not been invoked. If so, this will throw an exception. See [Mocking](../usage/mocking) for more details.
+
+### Match
+
+Uses a regular expression to compare two objects. This comparison is not case sensitive.
+
+```powershell
+"I am a value" | Should -Match "I Am" # Test will pass
+"I am a value" | Should -Match "I am a bad person" # Test will fail
+```
+
+:::tip
+Use `[regex]::Escape("pattern")` to match the exact text.
+
+```powershell
+"Greg" | Should -Match ".reg" # Test will pass
+"Greg" | Should -Match ([regex]::Escape(".reg")) # Test will fail
+```
+:::
+
+### MatchExactly
+
+Uses a regular expression to compare two objects. This comparison is case sensitive.
+
+```powershell
+"I am a value" | Should -MatchExactly "I am" # Test will pass
+"I am a value" | Should -MatchExactly "I Am" # Test will fail
+```
+
+### Throw
+
+Checks if an exception was thrown in the input ScriptBlock. Takes an optional argument to indicate the expected exception message.
+
+```powershell
+{ foo } | Should -Throw # Test will pass
+{ $foo = 1 } | Should -Throw # Test will fail
+{ foo } | Should -Not -Throw # Test will fail
+{ $foo = 1 } | Should -Not -Throw # Test will pass
+{ throw "This is a test" } | Should -Throw "This is a test" # Test will pass
+{ throw "bar" } | Should -Throw "This is a test" # Test will fail
+```
+
+:::info
+The exception message match is a `-like`
+[wildcard match](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comparison_operators?view=powershell-7#matching-operators),
+so the following assertion will pass:
+
+```powershell
+{throw "foo bar baz"} | Should -Throw "*bar*" # Test will pass
+```
+
+Wildcard-characters `?*[]` can be escaped using backtick, ex `` `*``.
+:::
+
+:::warning
+The input object must be a ScriptBlock, otherwise it is processed outside of the assertion.
+
+```powershell
+Get-Process -Name "process" -ErrorAction Stop | Should -Throw # Should pass but fails the test
+```
+:::
+
+
+:::tip
+`Throw` is used to validate terminating errors (i.e. exceptions that were thrown).
+If you want to perform validation against non-terminating errors (i.e. `Write-Error` messages), you can [use the technique described here](https://github.com/pester/Pester/issues/366#issuecomment-489377880).
+:::
+
+:::tip
+If you are calling a cmdlet and want to force all errors to be terminating errors so that they can be caught by `| -Should -Throw`, then append `-ErrorAction Stop` to the cmdlet parameters as shown in the example above.
+:::
diff --git a/versioned_docs/version-v5/assertions/custom-assertions.mdx b/versioned_docs/version-v5/assertions/custom-assertions.mdx
new file mode 100644
index 00000000..ca6ef5fe
--- /dev/null
+++ b/versioned_docs/version-v5/assertions/custom-assertions.mdx
@@ -0,0 +1,232 @@
+---
+title: Custom Assertions
+description: A guide for creating your own custom operators for more advanced or user-specific assertion needs
+---
+
+Pester allows users to create their own `Should`-operators for more advanced assertions. This is done by defining a test-function and registering it with Pester using the guidelines below.
+
+## Create the function
+
+### Requirements / Interface
+
+[Should](../commands/Add-ShouldOperator) will automatically pass on values from pipeline to your function as `ActualValue`.
+This can be an array or a single object depending on whether you register the function with `-SupportsArrayInput`.
+
+When `Should` calls your custom assertion, it will invoke it with the following parameters:
+- **ActualValue**: The value passed to `Should` to assert.
+- **Negate**: Internal switch/bool parameter used to declare if the user called `Should -Not ...`.
+- **CallerSessionState**: Used by some internal assertions to invoke code in the user's state. This can usually be ignored.
+- *Remaining bound parameters*, typically matching the parameters your accept in your assertion, like `ExpectedValue`, `Because`, `MyCustomParameter` etc.
+
+The function should return a object with the following properties:
+- **Succeeded**: Bool result of assert
+- **FailureMessage**: Message to the user explaining why the assert failed, typically in the format `Expected , but got `. If the function supports the commonly used `-Because` parameter, this property should include that message.
+
+If a problem occurs in your function, ex. it was called with invalid parameters, throw an exception. This will also fail the `Should` assertion, while making it clear to the user that it's not normal behavior.
+
+:::tip ActualValue is provided as a single parameter
+`Should` accepts the value to assert by pipeline but passes it to the assertion using `-ActualValue $ActualValue`. This means `ValueFromPipelineByPropertyName` is not available inside your function, but you can write your own logic to work with complex types provided to `ActualValue`.
+:::
+
+:::warning Using advanced functions as assertions
+Advanced functions, typically enabled by using `[CmdletBinding()]` or `[Parameter()]`, disallows arguments by default. In this scenario, make sure to accept all mandatory parameters in your param-block to avoid errors even if you don't use them. They are `ActualValue`, `Negate` and `CallerSessionState`.
+:::
+
+### Good practices
+
+- Support `-Not` for negative assertions. If not supported, throw an exception when used.
+ - Note that this is passed as `$Negate` to the function.
+- Support `-Because` to let users customize the error message on failure.
+- Write tests for you custom assertions to make sure they work the way you intended.
+ - `Should` will create error records for failed assertions with the `FullyQualifiedErrorId` set to `PesterAssertionFailed`.
+- Provide comment-based help with synopsis and examples so users can find it using `Get-ShouldOperator`.
+ - If you register an operator with a different name than the internal function, specify `-InternalName YourFunctionName` in `Add-ShouldOperator`.
+ This is required for `Get-ShouldOperator` to retrieve your comment-bases help.
+
+## Register function as operator
+
+When your function is ready you need to register it with Pester. See [Add-ShouldOperator](../commands/Add-ShouldOperator) for help or check out the examples below. Remember:
+
+- If `-Name` is different from the actual function name, make sure to specify `-InternalName` with your function name. This is used to retrieve help in `Get-ShouldOperator`.
+- Specify `-SupportsArrayInput` if your function should work with array input, ex. `1,2,3 | Should -BeNumber`
+
+Example registering a assertion function named `Should-BeNumber`:
+
+```powershell
+Add-ShouldOperator -Name BeNumber `
+ -InternalName 'Should-BeNumber' `
+ -Test ${function:Should-BeNumber} `
+ -Alias 'BeNum' `
+ -SupportsArrayInput
+```
+
+:::note Maxmimum number of Should operators
+Due to a limitation in PowerShell and the current design on `Should`, Pester is limited to a maximum of 32 Should operators. Pester currently includes 25 built-in operators, which limits how many custom operators you can register in a single session.
+The limitation is tracked in [this issue](https://github.com/pester/Pester/issues/1355)
+:::
+
+## Examples
+
+### Simple example
+
+```powershell title="MyCustomAssertions.psm1"
+#Requires -Module Pester
+
+function Should-BeUpperCaseOnly ([string] $ActualValue, [switch] $Negate, [string] $Because) {
+ <#
+ .SYNOPSIS
+ Checks provided string for only uppercase letters
+ .EXAMPLE
+ "ABC" | Should -BeUpperCaseOnly
+
+ Checks if "ABC" only contains uppercase letters. This should pass.
+ .EXAMPLE
+ "aBc" | Should -Not -BeUpperCaseOnly
+
+ Checks if "aBc" does NOT contain only uppercase. Since there are lowercase letters in the string, this should pass.
+ #>
+ $arr = $ActualValue.ToCharArray()
+ [bool] $succeeded = @($arr | Where-Object { [char]::IsLetter($_) -and [char]::IsUpper($_) }).Count -eq $arr.Count
+ if ($Negate) { $succeeded = -not $succeeded }
+
+ if (-not $succeeded) {
+ if ($Negate) {
+ $failureMessage = "Expected '$ActualValue' to not only contain uppercase letters$(if($Because) { " because $Because"})."
+ }
+ else {
+ $failureMessage = "Expected '$ActualValue' to only contain uppercase letters$(if($Because) { " because $Because"})."
+ }
+ }
+
+ return [pscustomobject]@{
+ Succeeded = $succeeded
+ FailureMessage = $failureMessage
+ }
+}
+
+Add-ShouldOperator -Name BeUpperCaseOnly `
+ -InternalName 'Should-BeUpperCaseOnly' `
+ -Test ${function:Should-BeUpperCaseOnly} `
+ -Alias 'BU'
+```
+
+```powershell title="demo.tests.ps1"
+BeforeDiscovery {
+ # Loads and registers my custom assertion. Ignores usage of unapproved verb with -DisableNameChecking
+ Import-Module "$PSScriptRoot/MyCustomAssertions.psm1" -DisableNameChecking
+}
+
+Describe 'Testing Should -BeUpperCaseOnly' {
+ It 'Success' {
+ "HELLO" | Should -BeUpperCaseOnly
+ }
+
+ It 'Failure' {
+ "HeLLo" | Should -BeUpperCaseOnly -Because "it looks cooler"
+ }
+
+ It 'Not all characters are uppercase' {
+ "hELLO" | Should -Not -BeUpperCaseOnly
+ }
+
+ It 'We can test failed assertions' {
+ { "fails" | Should -BeUpperCaseOnly } | Should -Throw -ErrorId 'PesterAssertionFailed'
+ }
+}
+```
+
+#### Demo
+
+```powershell
+Invoke-Pester ./demo.tests.ps1
+
+Starting discovery in 1 files.
+Discovery found 4 tests in 181ms.
+Running tests.
+[-] Testing custom assertion.Failure 22ms (20ms|3ms)
+ Expected 'HeLLo' to only contain uppercase letters because it looks cooler.
+ at "HeLLo" | Should -BeUpperCaseOnly -Because "it looks cooler", /workspaces/Pester/Samples/demo.tests.ps1:11
+ at , /workspaces/Pester/Samples/demo.tests.ps1:11
+Tests completed in 651ms
+Tests Passed: 3, Failed: 1, Skipped: 0 NotRun: 0
+```
+
+### SupportsArrayInput example
+
+```powershell title="MyCustomAssertions.psm1"
+#Requires -Module Pester
+
+function Should-ContainOnlyValuesOf ($ActualValue, [int]$ExpectedValue, [switch] $Negate, [string] $Because) {
+ <#
+ .SYNOPSIS
+ Asserts if collection contains only the expected value
+ .EXAMPLE
+ 3,3,3 | Should -ContainOnlyValuesOf 3
+
+ Checks if the array contains only values of 3. This should pass.
+
+ .EXAMPLE
+ 1,2,3 | Should -Not -ContainOnlyValuesOf 3
+
+ Checks if the array contains other values than 3. This should pass.
+ #>
+
+ $notEqual = foreach ($val in $ActualValue) {
+ if ($val -ne $ExpectedValue) { $val }
+ }
+ [bool] $succeeded = @($notEqual).Count -eq 0
+ if ($Negate) { $succeeded = -not $succeeded }
+
+ if (-not $succeeded) {
+ if ($Negate) {
+ $failureMessage = "Expected values not equal to $ExpectedValue to be in collection @($($ActualValue -join ', '))$(if($Because) { " because $Because"})."
+ }
+ else {
+ $failureMessage = "Expected only values equal to $ExpectedValue in collection @($($ActualValue -join ', '))$(if($Because) { " because $Because"})."
+ }
+ }
+
+ return [pscustomobject]@{
+ Succeeded = $succeeded
+ FailureMessage = $failureMessage
+ }
+}
+
+Add-ShouldOperator -Name ContainOnlyValuesOf `
+ -InternalName 'Should-ContainOnlyValuesOf' `
+ -Test ${function:Should-ContainOnlyValuesOf} `
+ -SupportsArrayInput
+```
+
+```powershell title="demo.tests.ps1"
+BeforeDiscovery {
+ # Loads and registers my custom assertion. Ignores usage of unapproved verb with -DisableNameChecking
+ Import-Module "$PSScriptRoot/MyCustomAssertions.psm1" -DisableNameChecking
+}
+
+Describe 'Testing Should -ContainOnlyValuesOf' {
+ It 'All values are as expected' {
+ 3, 3, 3 | Should -ContainOnlyValuesOf 3
+ }
+
+ It 'Failure' {
+ 3, 3, 3 | Should -Not -ContainOnlyValuesOf 3
+ }
+}
+```
+
+#### Demo
+
+```powershell
+Invoke-Pester ./demo.tests.ps1
+
+Starting discovery in 1 files.
+Discovery found 2 tests in 25ms.
+Running tests.
+[-] Testing Should -ContainOnlyValuesOf.Failure 8ms (6ms|2ms)
+ Expected values not equal to 3 to be in collection @(3, 3, 3).
+ at 3, 3, 3 | Should -Not -ContainOnlyValuesOf 3, /workspaces/Pester/Samples/demo.tests.ps1:11
+ at , /workspaces/Pester/Samples/demo.tests.ps1:11
+Tests completed in 83ms
+Tests Passed: 1, Failed: 1, Skipped: 0 NotRun: 0
+```
diff --git a/versioned_docs/version-v5/assertions/should-command.mdx b/versioned_docs/version-v5/assertions/should-command.mdx
new file mode 100644
index 00000000..6ed5c677
--- /dev/null
+++ b/versioned_docs/version-v5/assertions/should-command.mdx
@@ -0,0 +1,76 @@
+---
+title: Should
+description: Introduction to the Should command that's used to define assertions that fail or pass the test
+---
+
+`Should` is used to do an assertion that fails or passes the test.
+
+An example of assertion is comparing two strings in case insensitive manner:
+
+```powershell
+"Pester is bad." | Should -Be "Pester is awesome!"
+```
+
+Which throws an exception with this text to fail the test:
+
+```
+Expected strings to be the same, but they were different.
+Expected length: 18
+Actual length: 14
+Strings differ at index 10.
+Expected: 'Pester is awesome!'
+But was: 'Pester is bad.'
+ ----------^
+```
+
+Other assertion types can be found in [Assertion Reference](.).
+
+
+### Collect all Should failures
+
+`Should` can now be configured to continue on failure. This will report the error to Pester, but won't fail the test immediately. Instead, all the Should failures are collected and reported at the end of the test. This allows you to put multiple assertions into one It and still get complete information on failure.
+
+This new Should behavior is opt-in and can be enabled via `Should.ErrorAction = 'Continue'` on the configuration object or via `$PesterPreference`.
+
+```powershell
+ BeforeAll {
+ function Get-User {
+ @{
+ Name = "Jakub"
+ Age = 31
+ }
+ }
+}
+
+Describe "describe" {
+ It "user" {
+ $user = Get-User
+
+ $user | Should -Not -BeNullOrEmpty -ErrorAction Stop
+ $user.Name | Should -Be "Tomas"
+ $user.Age | Should -Be 27
+
+ }
+}
+
+```
+
+```
+Starting test discovery in 1 files.
+Found 1 tests. 51ms
+Test discovery finished. 83ms
+Describing describe
+ [-] user 124ms (109ms|15ms)
+ [0] Expected strings to be the same, but they were different.
+ String lengths are both 5.
+ Strings differ at index 0.
+ Expected: 'Tomas'
+ But was: 'Jakub'
+ at $user.Name | Should -Be "Tomas"
+ [1] Expected 27, but got 31.
+ at $user.Age | Should -Be 27
+Tests completed in 286ms
+Tests Passed: 0, Failed: 1, Skipped: 0, Total: 1, NotRun: 0
+```
+
+This allows you to check complex objects easily without writing It for each of the properties that you want to test. You can also use `-ErrorAction Stop` to force a failure when a pre-condition is not met. In our case if `$user` was null, there would be no point in testing the object further and we would fail the test immediately.
diff --git a/versioned_docs/version-v5/commands/Add-ShouldOperator.mdx b/versioned_docs/version-v5/commands/Add-ShouldOperator.mdx
new file mode 100644
index 00000000..b56e1445
--- /dev/null
+++ b/versioned_docs/version-v5/commands/Add-ShouldOperator.mdx
@@ -0,0 +1,169 @@
+---
+id: Add-ShouldOperator
+title: Add-ShouldOperator
+description: Help page for the PowerShell Pester "Add-ShouldOperator" command
+keywords:
+ - PowerShell
+ - Pester
+ - Help
+ - Documentation
+hide_title: false
+hide_table_of_contents: false
+custom_edit_url: null
+---
+
+:::info This page was generated
+Contributions are welcome in [Pester-repo](https://github.com/pester/pester).
+:::
+
+## SYNOPSIS
+
+Register a Should Operator with Pester
+
+## SYNTAX
+
+```powershell
+Add-ShouldOperator [-Name] [-Test] [[-Alias] ] [[-InternalName] ]
+ [-SupportsArrayInput] []
+```
+
+## DESCRIPTION
+
+This function allows you to create custom Should assertions.
+
+## EXAMPLES
+
+### EXAMPLE 1
+
+```powershell
+function BeAwesome($ActualValue, [switch] $Negate) {
+ [bool] $succeeded = $ActualValue -eq 'Awesome'
+ if ($Negate) { $succeeded = -not $succeeded }
+
+ if (-not $succeeded) {
+ if ($Negate) {
+ $failureMessage = "{$ActualValue} is Awesome"
+ }
+ else {
+ $failureMessage = "{$ActualValue} is not Awesome"
+ }
+ }
+
+ return New-Object psobject -Property @{
+ Succeeded = $succeeded
+ FailureMessage = $failureMessage
+ }
+}
+
+Add-ShouldOperator -Name BeAwesome `
+ -Test $function:BeAwesome `
+ -Alias 'BA'
+
+PS C:\> "bad" | Should -BeAwesome
+{bad} is not Awesome
+```
+
+Example of how to create a simple custom assertion that checks if the input string is 'Awesome'
+
+## PARAMETERS
+
+### -Name
+
+The name of the assertion.
+This will become a Named Parameter of Should.
+
+```yaml
+Type: String
+Parameter Sets: (All)
+Aliases:
+
+Required: True
+Position: 1
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Test
+
+The test function.
+The function must return a PSObject with a [Bool]succeeded and a [string]failureMessage property.
+
+```yaml
+Type: ScriptBlock
+Parameter Sets: (All)
+Aliases:
+
+Required: True
+Position: 2
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Alias
+
+A list of aliases for the Named Parameter.
+
+```yaml
+Type: String[]
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: 3
+Default value: @()
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -InternalName
+
+If -Name is different from the actual function name, record the actual function name here.
+Used by Get-ShouldOperator to pull function help.
+
+```yaml
+Type: String
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: 4
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -SupportsArrayInput
+
+Does the test function support the passing an array of values to test.
+
+```yaml
+Type: SwitchParameter
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: False
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### CommonParameters
+
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+## OUTPUTS
+
+## NOTES
+
+## RELATED LINKS
+
+[https://pester.dev/docs/commands/Add-ShouldOperator](https://pester.dev/docs/commands/Add-ShouldOperator)
+
+## VERSION
+
+*This page was generated using comment-based help in [Pester 5.6.0](https://github.com/pester/pester).*
diff --git a/versioned_docs/version-v5/commands/AfterAll.mdx b/versioned_docs/version-v5/commands/AfterAll.mdx
new file mode 100644
index 00000000..66f2e673
--- /dev/null
+++ b/versioned_docs/version-v5/commands/AfterAll.mdx
@@ -0,0 +1,110 @@
+---
+id: AfterAll
+title: AfterAll
+description: Help page for the PowerShell Pester "AfterAll" command
+keywords:
+ - PowerShell
+ - Pester
+ - Help
+ - Documentation
+hide_title: false
+hide_table_of_contents: false
+custom_edit_url: null
+---
+
+:::info This page was generated
+Contributions are welcome in [Pester-repo](https://github.com/pester/pester).
+:::
+
+## SYNOPSIS
+
+Defines a series of steps to perform at the end of the current container,
+Context or Describe block.
+
+## SYNTAX
+
+```powershell
+AfterAll [-Scriptblock] []
+```
+
+## DESCRIPTION
+
+AfterAll is used to share teardown after all the tests in a container, Describe
+or Context including all child blocks and tests.
+AfterAll runs during Run phase
+and runs only once in the current block.
+It's guaranteed to run even if tests
+fail.
+
+The typical usage is to clean up state or temporary used in tests.
+
+BeforeAll and AfterAll are unique in that they apply to the entire container,
+Context or Describe block regardless of the order of the statements compared to
+other Context or Describe blocks at the same level.
+
+## EXAMPLES
+
+### EXAMPLE 1
+
+```powershell
+Describe "Validate important file" {
+ BeforeAll {
+ $samplePath = "$([IO.Path]::GetTempPath())/$([Guid]::NewGuid()).txt"
+ Write-Host $samplePath
+ 1..100 | Set-Content -Path $samplePath
+ }
+
+ It "File Contains 100 lines" {
+ @(Get-Content $samplePath).Count | Should -Be 100
+ }
+
+ It "First ten lines should be 1 -> 10" {
+ @(Get-Content $samplePath -TotalCount 10) | Should -Be @(1..10)
+ }
+
+ AfterAll {
+ Remove-Item -Path $samplePath
+ }
+}
+```
+
+This example uses AfterAll to clean up a sample-file generated only for
+the tests in the Describe-block.
+
+## PARAMETERS
+
+### -Scriptblock
+
+A scriptblock with steps to be executed during teardown.
+
+```yaml
+Type: ScriptBlock
+Parameter Sets: (All)
+Aliases:
+
+Required: True
+Position: 2
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### CommonParameters
+
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+## OUTPUTS
+
+## NOTES
+
+## RELATED LINKS
+
+[https://pester.dev/docs/commands/AfterAll](https://pester.dev/docs/commands/AfterAll)
+
+[https://pester.dev/docs/usage/setup-and-teardown](https://pester.dev/docs/usage/setup-and-teardown)
+
+## VERSION
+
+*This page was generated using comment-based help in [Pester 5.6.0](https://github.com/pester/pester).*
diff --git a/versioned_docs/version-v5/commands/AfterEach.mdx b/versioned_docs/version-v5/commands/AfterEach.mdx
new file mode 100644
index 00000000..49b971e8
--- /dev/null
+++ b/versioned_docs/version-v5/commands/AfterEach.mdx
@@ -0,0 +1,107 @@
+---
+id: AfterEach
+title: AfterEach
+description: Help page for the PowerShell Pester "AfterEach" command
+keywords:
+ - PowerShell
+ - Pester
+ - Help
+ - Documentation
+hide_title: false
+hide_table_of_contents: false
+custom_edit_url: null
+---
+
+:::info This page was generated
+Contributions are welcome in [Pester-repo](https://github.com/pester/pester).
+:::
+
+## SYNOPSIS
+
+Defines a series of steps to perform at the end of every It block within
+the current Context or Describe block.
+
+## SYNTAX
+
+```powershell
+AfterEach [-Scriptblock] []
+```
+
+## DESCRIPTION
+
+AfterEach runs once after every test in the current or any child blocks.
+Typically this is used to clean up resources created by the test or its setups.
+AfterEach runs in a finally block, and is guaranteed to run even if the test
+(or setup) fails.
+
+BeforeEach and AfterEach are unique in that they apply to the entire Context
+or Describe block, regardless of the order of the statements in the
+Context or Describe.
+
+## EXAMPLES
+
+### EXAMPLE 1
+
+```powershell
+Describe "Testing export formats" {
+ BeforeAll {
+ $filePath = "$([IO.Path]::GetTempPath())/$([Guid]::NewGuid())"
+ }
+ It "Test Export-CSV" {
+ Get-ChildItem | Export-CSV -Path $filePath -NoTypeInformation
+ $dir = Import-CSV -Path $filePath
+ # ...
+ }
+ It "Test Export-Clixml" {
+ Get-ChildItem | Export-Clixml -Path $filePath
+ $dir = Import-Clixml -Path $filePath
+ # ...
+ }
+
+ AfterEach {
+ if (Test-Path $file) {
+ Remove-Item $file -Force
+ }
+ }
+}
+```
+
+The example uses AfterEach to remove a temporary file after each test.
+
+## PARAMETERS
+
+### -Scriptblock
+
+A scriptblock with steps to be executed during teardown.
+
+```yaml
+Type: ScriptBlock
+Parameter Sets: (All)
+Aliases:
+
+Required: True
+Position: 2
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### CommonParameters
+
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+## OUTPUTS
+
+## NOTES
+
+## RELATED LINKS
+
+[https://pester.dev/docs/commands/AfterEach](https://pester.dev/docs/commands/AfterEach)
+
+[https://pester.dev/docs/usage/setup-and-teardown](https://pester.dev/docs/usage/setup-and-teardown)
+
+## VERSION
+
+*This page was generated using comment-based help in [Pester 5.6.0](https://github.com/pester/pester).*
diff --git a/versioned_docs/version-v5/commands/Assert-MockCalled.mdx b/versioned_docs/version-v5/commands/Assert-MockCalled.mdx
new file mode 100644
index 00000000..5e22780c
--- /dev/null
+++ b/versioned_docs/version-v5/commands/Assert-MockCalled.mdx
@@ -0,0 +1,187 @@
+---
+id: Assert-MockCalled
+title: Assert-MockCalled
+description: Help page for the PowerShell Pester "Assert-MockCalled" command
+keywords:
+ - PowerShell
+ - Pester
+ - Help
+ - Documentation
+hide_title: false
+hide_table_of_contents: false
+custom_edit_url: null
+---
+
+:::info This page was generated
+Contributions are welcome in [Pester-repo](https://github.com/pester/pester).
+:::
+
+## SYNOPSIS
+
+Checks if a Mocked command has been called a certain number of times
+and throws an exception if it has not.
+
+THIS COMMAND IS OBSOLETE AND WILL BE REMOVED SOMEWHERE DURING v5 LIFETIME,
+USE Should -Invoke INSTEAD.
+
+## SYNTAX
+
+### ParameterFilter (Default)
+
+```powershell
+Assert-MockCalled [-CommandName] [[-Times] ] [-ParameterFilter ]
+ [-ModuleName ] [-Scope ] [-Exactly] []
+```
+
+### ExclusiveFilter
+
+```powershell
+Assert-MockCalled [-CommandName] [[-Times] ] [-ParameterFilter ]
+ -ExclusiveFilter [-ModuleName ] [-Scope ] [-Exactly] []
+```
+
+## DESCRIPTION
+
+\{\{ Fill in the Description \}\}
+
+## EXAMPLES
+
+### Example 1
+
+```powershell
+PS C:\> {{ Add example code here }}
+```
+
+\{\{ Add example description here \}\}
+
+## PARAMETERS
+
+### -CommandName
+
+\{\{ Fill CommandName Description \}\}
+
+```yaml
+Type: String
+Parameter Sets: (All)
+Aliases:
+
+Required: True
+Position: 1
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Times
+
+\{\{ Fill Times Description \}\}
+
+```yaml
+Type: Int32
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: 2
+Default value: 1
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -ParameterFilter
+
+\{\{ Fill ParameterFilter Description \}\}
+
+```yaml
+Type: ScriptBlock
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: { $True }
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -ExclusiveFilter
+
+\{\{ Fill ExclusiveFilter Description \}\}
+
+```yaml
+Type: ScriptBlock
+Parameter Sets: ExclusiveFilter
+Aliases:
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -ModuleName
+
+\{\{ Fill ModuleName Description \}\}
+
+```yaml
+Type: String
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Scope
+
+\{\{ Fill Scope Description \}\}
+
+```yaml
+Type: String
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: 0
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Exactly
+
+\{\{ Fill Exactly Description \}\}
+
+```yaml
+Type: SwitchParameter
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: False
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### CommonParameters
+
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+## OUTPUTS
+
+## NOTES
+
+## RELATED LINKS
+
+[https://pester.dev/docs/commands/Assert-MockCalled](https://pester.dev/docs/commands/Assert-MockCalled)
+
+## VERSION
+
+*This page was generated using comment-based help in [Pester 5.6.0](https://github.com/pester/pester).*
diff --git a/versioned_docs/version-v5/commands/Assert-VerifiableMock.mdx b/versioned_docs/version-v5/commands/Assert-VerifiableMock.mdx
new file mode 100644
index 00000000..0d38d159
--- /dev/null
+++ b/versioned_docs/version-v5/commands/Assert-VerifiableMock.mdx
@@ -0,0 +1,64 @@
+---
+id: Assert-VerifiableMock
+title: Assert-VerifiableMock
+description: Help page for the PowerShell Pester "Assert-VerifiableMock" command
+keywords:
+ - PowerShell
+ - Pester
+ - Help
+ - Documentation
+hide_title: false
+hide_table_of_contents: false
+custom_edit_url: null
+---
+
+:::info This page was generated
+Contributions are welcome in [Pester-repo](https://github.com/pester/pester).
+:::
+
+## SYNOPSIS
+
+Checks if all verifiable Mocks has been called at least once.
+
+THIS COMMAND IS OBSOLETE AND WILL BE REMOVED SOMEWHERE DURING v5 LIFETIME,
+USE Should -InvokeVerifiable INSTEAD.
+
+## SYNTAX
+
+```powershell
+Assert-VerifiableMock []
+```
+
+## DESCRIPTION
+
+\{\{ Fill in the Description \}\}
+
+## EXAMPLES
+
+### Example 1
+
+```powershell
+PS C:\> {{ Add example code here }}
+```
+
+\{\{ Add example description here \}\}
+
+## PARAMETERS
+
+### CommonParameters
+
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+## OUTPUTS
+
+## NOTES
+
+## RELATED LINKS
+
+[https://pester.dev/docs/commands/Assert-VerifiableMock](https://pester.dev/docs/commands/Assert-VerifiableMock)
+
+## VERSION
+
+*This page was generated using comment-based help in [Pester 5.6.0](https://github.com/pester/pester).*
diff --git a/versioned_docs/version-v5/commands/BeforeAll.mdx b/versioned_docs/version-v5/commands/BeforeAll.mdx
new file mode 100644
index 00000000..2f43f3c0
--- /dev/null
+++ b/versioned_docs/version-v5/commands/BeforeAll.mdx
@@ -0,0 +1,119 @@
+---
+id: BeforeAll
+title: BeforeAll
+description: Help page for the PowerShell Pester "BeforeAll" command
+keywords:
+ - PowerShell
+ - Pester
+ - Help
+ - Documentation
+hide_title: false
+hide_table_of_contents: false
+custom_edit_url: null
+---
+
+:::info This page was generated
+Contributions are welcome in [Pester-repo](https://github.com/pester/pester).
+:::
+
+## SYNOPSIS
+
+Defines a series of steps to perform at the beginning of the current container,
+Context or Describe block.
+
+## SYNTAX
+
+```powershell
+BeforeAll [-Scriptblock] []
+```
+
+## DESCRIPTION
+
+BeforeAll is used to share setup among all the tests in a container, Describe
+or Context including all child blocks and tests.
+BeforeAll runs during Run phase
+and runs only once in the current level.
+
+The typical usage is to setup the whole test script, most commonly to
+import the tested function, by dot-sourcing the script file that contains it.
+
+BeforeAll and AfterAll are unique in that they apply to the entire container,
+Context or Describe block regardless of the order of the statements compared to
+other Context or Describe blocks at the same level.
+
+## EXAMPLES
+
+### EXAMPLE 1
+
+```powershell
+BeforeAll {
+ . $PSCommandPath.Replace('.Tests.ps1','.ps1')
+}
+
+Describe "API validation" {
+ # ...
+}
+```
+
+This example uses dot-sourcing in BeforeAll to make functions in the script-file
+available for the tests.
+
+### EXAMPLE 2
+
+```powershell
+Describe "API validation" {
+ BeforeAll {
+ # this calls REST API and takes roughly 1 second
+ $response = Get-Pokemon -Name Pikachu
+ }
+
+ It "response has Name = 'Pikachu'" {
+ $response.Name | Should -Be 'Pikachu'
+ }
+
+ It "response has Type = 'electric'" {
+ $response.Type | Should -Be 'electric'
+ }
+}
+```
+
+This example uses BeforeAll to perform an expensive operation only once, before validating
+the results in separate tests.
+
+## PARAMETERS
+
+### -Scriptblock
+
+A scriptblock with steps to be executed during setup.
+
+```yaml
+Type: ScriptBlock
+Parameter Sets: (All)
+Aliases:
+
+Required: True
+Position: 2
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### CommonParameters
+
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+## OUTPUTS
+
+## NOTES
+
+## RELATED LINKS
+
+[https://pester.dev/docs/commands/BeforeAll](https://pester.dev/docs/commands/BeforeAll)
+
+[https://pester.dev/docs/usage/setup-and-teardown](https://pester.dev/docs/usage/setup-and-teardown)
+
+## VERSION
+
+*This page was generated using comment-based help in [Pester 5.6.0](https://github.com/pester/pester).*
diff --git a/versioned_docs/version-v5/commands/BeforeDiscovery.mdx b/versioned_docs/version-v5/commands/BeforeDiscovery.mdx
new file mode 100644
index 00000000..9d58752d
--- /dev/null
+++ b/versioned_docs/version-v5/commands/BeforeDiscovery.mdx
@@ -0,0 +1,97 @@
+---
+id: BeforeDiscovery
+title: BeforeDiscovery
+description: Help page for the PowerShell Pester "BeforeDiscovery" command
+keywords:
+ - PowerShell
+ - Pester
+ - Help
+ - Documentation
+hide_title: false
+hide_table_of_contents: false
+custom_edit_url: null
+---
+
+:::info This page was generated
+Contributions are welcome in [Pester-repo](https://github.com/pester/pester).
+:::
+
+## SYNOPSIS
+
+Runs setup code that is used during Discovery phase.
+
+## SYNTAX
+
+```powershell
+BeforeDiscovery [-ScriptBlock] []
+```
+
+## DESCRIPTION
+
+Runs your code as is, in the place where this function is defined.
+This is a semantic block to allow you
+to be explicit about code that you need to run during Discovery, instead of just
+putting code directly inside of Describe / Context.
+
+## EXAMPLES
+
+### EXAMPLE 1
+
+```powershell
+BeforeDiscovery {
+ $files = Get-ChildItem -Path $PSScriptRoot -Filter '*.ps1' -Recurse
+}
+
+Describe "File - <_>" -ForEach $files {
+ Context "Whitespace" {
+ It "There is no extra whitespace following a line" {
+ # ...
+ }
+
+ It "File ends with an empty line" {
+ # ...
+ }
+ }
+}
+```
+
+BeforeDiscovery is used to gather a list of script-files during Discovery-phase to
+dynamically create a Describe-block and tests for each file found.
+
+## PARAMETERS
+
+### -ScriptBlock
+
+The ScriptBlock to run.
+
+```yaml
+Type: ScriptBlock
+Parameter Sets: (All)
+Aliases:
+
+Required: True
+Position: 1
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### CommonParameters
+
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+## OUTPUTS
+
+## NOTES
+
+## RELATED LINKS
+
+[https://pester.dev/docs/commands/BeforeDiscovery](https://pester.dev/docs/commands/BeforeDiscovery)
+
+[https://pester.dev/docs/usage/data-driven-tests](https://pester.dev/docs/usage/data-driven-tests)
+
+## VERSION
+
+*This page was generated using comment-based help in [Pester 5.6.0](https://github.com/pester/pester).*
diff --git a/versioned_docs/version-v5/commands/BeforeEach.mdx b/versioned_docs/version-v5/commands/BeforeEach.mdx
new file mode 100644
index 00000000..88015aaf
--- /dev/null
+++ b/versioned_docs/version-v5/commands/BeforeEach.mdx
@@ -0,0 +1,104 @@
+---
+id: BeforeEach
+title: BeforeEach
+description: Help page for the PowerShell Pester "BeforeEach" command
+keywords:
+ - PowerShell
+ - Pester
+ - Help
+ - Documentation
+hide_title: false
+hide_table_of_contents: false
+custom_edit_url: null
+---
+
+:::info This page was generated
+Contributions are welcome in [Pester-repo](https://github.com/pester/pester).
+:::
+
+## SYNOPSIS
+
+Defines a series of steps to perform at the beginning of every It block within
+the current Context or Describe block.
+
+## SYNTAX
+
+```powershell
+BeforeEach [-Scriptblock] []
+```
+
+## DESCRIPTION
+
+BeforeEach runs once before every test in the current or any child blocks.
+Typically this is used to create all the prerequisites for the current test,
+such as writing content to a file.
+
+BeforeEach and AfterEach are unique in that they apply to the entire Context
+or Describe block, regardless of the order of the statements in the
+Context or Describe.
+
+## EXAMPLES
+
+### EXAMPLE 1
+
+```powershell
+Describe "File parsing" {
+ BeforeEach {
+ # randomized path, to get fresh file for each test
+ $file = "$([IO.Path]::GetTempPath())/$([Guid]::NewGuid())_form.xml"
+ Copy-Item -Source $template -Destination $file -Force | Out-Null
+ }
+
+ It "Writes username" {
+ Write-XmlForm -Path $file -Field "username" -Value "nohwnd"
+ $content = Get-Content $file
+ # ...
+ }
+
+ It "Writes name" {
+ Write-XmlForm -Path $file -Field "name" -Value "Jakub"
+ $content = Get-Content $file
+ # ...
+ }
+}
+```
+
+The example uses BeforeEach to ensure a clean sample-file is used for each test.
+
+## PARAMETERS
+
+### -Scriptblock
+
+A scriptblock with steps to be executed during setup.
+
+```yaml
+Type: ScriptBlock
+Parameter Sets: (All)
+Aliases:
+
+Required: True
+Position: 2
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### CommonParameters
+
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+## OUTPUTS
+
+## NOTES
+
+## RELATED LINKS
+
+[https://pester.dev/docs/commands/BeforeEach](https://pester.dev/docs/commands/BeforeEach)
+
+[https://pester.dev/docs/usage/setup-and-teardown](https://pester.dev/docs/usage/setup-and-teardown)
+
+## VERSION
+
+*This page was generated using comment-based help in [Pester 5.6.0](https://github.com/pester/pester).*
diff --git a/versioned_docs/version-v5/commands/Context.mdx b/versioned_docs/version-v5/commands/Context.mdx
new file mode 100644
index 00000000..4b2013ba
--- /dev/null
+++ b/versioned_docs/version-v5/commands/Context.mdx
@@ -0,0 +1,186 @@
+---
+id: Context
+title: Context
+description: Help page for the PowerShell Pester "Context" command
+keywords:
+ - PowerShell
+ - Pester
+ - Help
+ - Documentation
+hide_title: false
+hide_table_of_contents: false
+custom_edit_url: null
+---
+
+:::info This page was generated
+Contributions are welcome in [Pester-repo](https://github.com/pester/pester).
+:::
+
+## SYNOPSIS
+
+Provides logical grouping of It blocks within a single Describe block.
+
+## SYNTAX
+
+```powershell
+Context [-Name] [-Tag ] [[-Fixture] ] [-Skip] [-ForEach