Introduction to PESTER - TDD for PowerShell


An introduction session for using Pester to test your PowerShell code Pester provides a framework for running unit tests to execute and validate PowerShell commands from within PowerShell.

I will show you can get started using Test Driven Development for your PowerShell scripting.

We will examine Pester, the syntax and show plenty of demos and build a function that uses the Microsoft Cognitive Services Faces API to analyse Beards 😊 Green is good, Red is bad –

Turning your Checklists into Pester Tests This session will be relevant to any technicians who use checklists I was required to prove that I had successfully installed and configured a backup solution across a large estate.

I had a number of success criteria that had to be met. Checking all of these by hand (eye) would have been error prone, so I wrote a test to do this for me and an easy for management to read HTML report using PowerShell and Pester. The session has come from that situation and is about enabling you to provide an easy to read output to quickly and repeatedly show that infrastructure is as expected for a set of checks, also known as Operational Validation using Pester.

There are many use cases for this type of solution; DR testing, installation, first line checks, presentation setups After this session you will have a basic understanding of how Pester works and the capability to examine your checklists and create your own validation tests and provide some reporting for management.

I am able to perform the following checks in 15 minutes across hundreds of servers and thousands of databases and I think it is cool and useful and everyone should be able to do so and take the functionality to create their own.

Every Job in Ola Hallengrens Maintenance Solution exists, is enabled, has a schedule, has succeeded, has 2 job steps, has a generate restore script job step, the root backup folder is contactable, for every database the correct folders exist for the full, differential and log backup depending on recovery model in that folder, that each of those backup folders has files in it, that the most recent file in each of those folders is less than the required frequency for those jobs.


Rob is a SQL Server DBA with a passion for Powershell, Azure, Automation, and SQL (PaaS geddit?). He is an officer for the PASS PowerShell Virtual Chapter and has spoken at and volunteered at many events. He is a member of the committee that organises SQL Saturday Exeter and also European PowerShell Conference. He is a proud supporter of the SQL and Powershell communities. He relishes sharing and learning and can be found doing both via Twitter and his blog. He spends most of his time looking at a screen and loves to solve problems. He knows that looking at a screen so much is bad for him because his wife tells him so. Thus, you can find him on the cricket field in the summer and flying a drone in the winter.

He has a fabulous beard (