Run Pester tests in PowerShell ISE with IsePester

Today I stumbled upon a package in chocolatey that I wasn’t aware of. It’s called IsePester from @dfinke. If you develop you PowerShell scripts with ISE and run Pester tests this is a really nice package. If you haven’t played around with chocolatey – do it. It’s a really need packaging manger that makes setting up your dev machines really easy. To install chocolatey just run the following command in PowerShell: To use Pester you have to install it. If it is already installed you can override it with -–force / -f Install IsePester the same way… If you now … Continue reading Run Pester tests in PowerShell ISE with IsePester

Use Pester to author your PowerShell scripts

Pester is a great module for testing your PowerShell scripts and modules. It has great mocking support, a test drive for setting up isolated files and supports a lot of assertions. Since the importance of PowerShell growths, testing your scripts is a must.

This is part 2 of the series “Develop next level PowerShell with Visual Studio and Pester”. It assumes that you have a Visual Studio solution with a basic Pester Test in GitHub.

Post Content
Part 1: Develop next level PowerShell with Visual Studio and Pester In this post I focus on creating the project in Visual Studio and interacting with a source control system like git.
Part 2: Use Pester to author your PowerShell scripts using TDD/BDD This post focuses on writing PowerShell scripts or modules using Pester as a TDD/BDD framework.
Part 3: Run your Pester tests in a VSTS build In this post I show you how you can run you tests in a continuous integration build and display the build status with a badge in your repository.

 

Pester basics

If you create a new test in Visual Studio, it looks like this:

Describe "PowerShellTest1" {
    Context "Exists" {
        It "Runs" {
        }
    }
}

As you can see you have three levels:

Describe: This is the name of the test displayed in test explorer. It is not ONE test in the test results. It’s more a container scope for many tests that executes as a unit.

Context: Like “Describe” the Context is a container for tests. You can mock functions or have test files in the scope of a context.

It: “It” is the actual test. You add an assertion here to test the state of your system. “It” is also a scope for mocking like context.

You can use these elements to structure your tests in a BDD style after the GivenWhenThen pattern.

$project = (Split-Path -Parent $MyInvocation.MyCommand.Path).Replace(".Tests", "")
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path).Replace(".tests.", ".")
. "$project\$sut"

Describe "AnswerToUltimateQuestion" {
    Context "Given an enormous supercomputer named Deep Thought, when we ask the ultimate question about life, the universe, and everything" {
        It "should return 42" {
			       AnswerToUltimateQuestion | Should Be 42
		     }
    }
}

Continue reading “Use Pester to author your PowerShell scripts”

New Version of SPEmulators available on nuget

Today I released a new version of the SPEmulators – the package to emulate SharePoint Server API in Farm Solutions – on nuget. The current version is 2.0. The current version includes: Support for Visual Studio 2015 Enterprise Fixed errors for some editions of VS 2012 and 2013 Included Pull Request from Vladimir Almaev with support for SPViewFieldCollection Fixed some minor bugs For installing and using the package please refer to my original post. If you have any questions, issues or feature requests, please create an issue on the project page on GitHub. Continue reading New Version of SPEmulators available on nuget

SPOEmulators 0.2-pre released on nuget

I had no support for Visual Studio 2015 in my first beta. I fixed this and added a pester test script to test the init.ps1. I also notices that there are problems with older versions of SharePoint on premises. Therefor I created a second nuget package. The original package SPOEmulators now uses the dependent package Microsoft.SharePointOnline.CSOM as the source for the CSOM assemblies (version 16). The new package SPOEmulators (on-premises) directly references the version 15 of the CSOM assemblies. For details how to use the SPOEmulators refer to the readme on github.com or to my original post here. Continue reading SPOEmulators 0.2-pre released on nuget

SPOEmulators beta available

Today I published the first beta of SPOEmulators on NuGet.org. The project is open source (MIT license) and is available on GitHub. SPOEmulators is a framework that helps you to write unit and integration tests against Office 365 or SharePoint on premise using the client side object model (CSOM). It uses the Microsoft Fakes Framework to emulate the SharePoint or O365 CSOM. The benefit is, that you an write your tests against the real backend as integration tests. If your code works you can add a little more effort to convert the test to an isolated unit test. Like this … Continue reading SPOEmulators beta available

SPEmulators available on nuget

Every SharePoint developer that does TDD is desperately waiting for Microsoft to release a Version of the Microsoft.SharePoint.Emulators for SharePoint 2013. Unfortunately it seems that Microsoft does not have any plans to publish a new release in the near future. This is completely incomprehensible since there are a lot of SP2010 solutions that must be migrated to SP2013. To close the gap there is now the the nuget package SPEmulators. The source code is available in a repository on GitHub. Installation To install SPEmulators, run the following command in the Package Manager Console: Install-Package SPEmulators. You can also search for … Continue reading SPEmulators available on nuget

SPEmulators auf NuGet verfügbar

Eine lange Zeit nun warten die SharePoint-Entwickler auf eine neue Version der Microsoft.SharePoint.Emulators für SharePoint 2013. Leider scheint Microsoft aber in absehbarer Zukunft keine neue Version herauszubringen. Das ist völlig unverständlich, da es ja auch viele 2010er Lösungen gibt, die nach 2013 migriert werden müssen. Um die Lücke zu schließen gibt es jetzt das Nuget-Package SPEmulators. Der Code ist auf GitHub verfügbar. Installation Die Installation erfolgt wie immer per Package-Manager-Console mit dem Befehl: “Install-Package SPEmulators”. Alternativ kann über “Manage NuGet Packages” nach dem Paket gesucht werden. Ein Klick auf “Install” fügt das Paket dem aktuelle Projekt hinzu. Erstellen des ersten … Continue reading SPEmulators auf NuGet verfügbar