I have left the heat and humidity of Singapore where I have been presenting at the PowerShell Conference Asia and DevOpsDays Singapore to travel to Seattle for PASS Summit. During my Green is Good – Red is Bad session someone asked me if the PowerBi that I showed at the end would work with any Pester Test Results object and I said (without thinking) that it would.
It turns out that the PowerBi that I had set up for that session will work with my function to run Pester Tests against an Ola Hallengren installation but some of the formatting and custom columns were specific to that test.
I said that I would share a Power Bi file that people could plug any Pester Test Results into. This is the first iteration of that. I doubt that it will work for every single test but I think it will be a good starting point for people to use.
This is how to use it
Download the file from here.
Run your Pester Tests using the PassThru Parameter and set the results to a variable, you can also use the Show Parameter to reduce the output of the tests to the screen (and also speed up the tests)
$PesterResults = Invoke-Pester -Script C:\temp\PBI-Test01.ps1 -Show Summary -PassThru
Then we convert the $PesterResults object into a JSON file
$PesterResults.TestResult | ConvertTo-Json -Depth 5 | Out-File C:\temp\pbi-test.json
Open the Power Bi file you downloaded
then the words “Edit Queries”
then data source settings,
highlight the filename and click change source
then navigate to the JSON file you just created, click ok and close and the apply changes.
Which will load the data from the JSON file and display your pester results. You can then save this file with a new name and keep the template for other tests.
It’s not going to be perfect
It’s not going to work in all circumstances and I expect that with some test results it will display the results in a less than optimal manner but you should be able to modify this to suit your needs.
Please give it a try and see how you get on
Here is a sample report created with Demo 1 from my Green is Good session
You can click around and change the data you can see and also look at the other 4 pages
Here is another one that I created using my dbatools-scripts repo and a config file. Again, have a click around and see what it does.
$Config = (Get-Content GIT:\dbatools-scripts\TestConfig.json) -join "`n" | ConvertFrom-Json
$PesterResults = Invoke-Pester .\dbatools-scripts\ -PassThru
$PesterResults.TestResult | Convertto-Json |Out-File C:\temp\dbatools-scripts-pester.json
I also created a quick video showing the process too which I will upload when I am not at 35000 feet!!
Enjoy 🙂 Also, let me know if you think it would be better to have the file in Github which would allow contributions but it would only be seen as a binary file and therefore merging will be difficult. I am happy to do so.