All Posts

Transform SpecFlow Table Column

In a previous blog post I wrote about a trick on how to remove technical ids from Gherkin scenarios while still using technical ids in the step definitions. The proposed solution worked well for the given scenario, but not for other cases. In this post I look at several approaches on how to solve this issue.

Handling exceptions in SpecFlow

I use Gherkin scenarios to describe the functional specifications of my software and SpecFlow to automate these scenarios as tests. Usually there will be a couple of scenarios describing the happy path of the feature I’m building but also some scenarios concerning failures. In this post I’ll show my solution how to handle failures in the form of exceptions with the Driver pattern.

Provision an Azure VM in an Azure Pipelines Environment

In the past I’ve created a custom Azure Pipelines task to install .NET Core on a Windows server. To test this task, I had to manually setup an environment with virtual machines. I wanted to automate this process, so I created a YAML pipeline in Azure DevOps that automatically provisions an Azure virtual machine and registers the virtual machine in an Azure Pipelines environment.

Handling technical ids in Gherkin with SpecFlow

Gherkin scenarios in Specification by Example are used to describe the functional requirements of your software. They should be readable for the team and also for the business that uses the software. Technical ids don’t have a place here. They’re usually included in scenarios for test automation purposes but make the them harder to read. So, what to do when your code requires a technical id?

How to install .NET Core on a Windows server

In this post I show how I install and update the .NET Core Runtime & Hosting Bundle on Windows servers using Azure Pipelines. Making patching .NET Core a trivial matter.

Using multi-stage YAML pipeline to create and publish NuGet packages

I’ve recently created a new NuGet package called FluentAssertions.ArgumentMatchers.Moq that I published on In order to make the process of creating and publishing this package as smooth and simple as possible, I’ve created a multi-stage YAML pipeline in Azure DevOps.