Disclaimers and introduction
I am now the father of three kids. They are my 1 priority. This project will come second. I’m doing the project for myself mostly, but am very humbled by the fact that several people already have shown interest in my undertakings.
Up to now I’ve also have time to look at the project half-an-hour at the time. With several hours of back-in-my-head-thinking in between. That might be good.
I have no master plan. I will make mistake as you sure will notice in this post… I do not intend to document just the result but also my sidesteps and mistakes. I am a firm believer that it’s true our mistakes that we learn the most.
OK – on with the show.
In the first part of this series I simply wrote the first specification. So it’s no time to,
Developing in .Net–a new era has begun
The other day I just realized how much have changed in the way we develop code nowadays. Well it might just be me but it’s certainly some major changes that has taken place in the .NET development arena.
I don’t claim this to be in the right chronological order but here are some major milestones for me:
Specification by example with SpecFlow in TFS and the question of traceability
This is the second post talking about how to integrate the use of Team Foundation Server (TFS) in a Specification by example (BDD, ATDD call it what you want) workflow. You can read the first post here for some background, but I will include some background here too, as I have thought about it some more.
Specification by example is not only a way to write executable specifications (red. those words still gives me the chills) but in the way it’s used in projects lies some kind of agile methodology hidden. The early and frequent communication and documentation (in a commonly understood format, Gherkin) it fosters really get the way you work in a very agile way. More on that later. Cucumber is a very well known tool in the Ruby world, where projects often create web applications. I think...
Managing BDD features in our project (using TFS)
From time to time I find myself in the position where I ask “stupid” questions. I’ve found that it’s often the case that the question is not that “stupid” after all and if it is you get to learn a lot in the process. I have never been verbally abused, flamed or laughed at for my questions – which often are the reasons that people don’t want to ask to “stupid” questions. So recently I’ve been asking “stupid” (final time I use that word in this post, promise) questions surrounding the management of features (.feature-files for us Cucumber freaks). And at the same time I’ve searching high and low on the net for best practices on how to managing your features through the course of a project. I didn’t find much due a couple of reason:
- the Ruby/ cucumber inheritance of .net tools such as SpecFlow is...
Know where you step–generate a step definition report with SpecFlow
In my recent ventures into DOS-country and the SpecFlow.exe I noticed one last flag or subcommand that the SpecFlow.exe accepts; stepdefinitionreport. This subcommand will go through all your features and see which step definitions are called, how many times they are called and also if there is any step definitions that isn’t called at all. OK – that sounds real good, but for the life for me I couldn’t get it to work. But since the source is open and available from gitHub.com I simply pulled a version down and tried to debug the code. And before long I found the solution. SpecFlow (now 2010-12-16) uses .NET framework 3.5, but my specifications were written using .NET 4.0. There are some reflection going on inside the step definition report code and that doesn’t work very well (loading assemblies from different framework versions). OK...
SpecFlow.exe and MsTest
With your SpecFlow installation comes SpecFlow.exe that is a program that can be used to generate tests from the scenarios AND to create nicely formatted reports from the generated test results. There’s been a lot written on how to generate these reports when your using NUnit (see this and this for example), but when it comes to managing this for MsTest there’s been almost silent. And facing this problem I can sure see why… It’s a bit trickier.
In this blog post I want to show you two things; how to generate MsTest’s from your .feature-files and how to create a report from the generated results. Finally I’ll show you how to put the two together and link it up to a nice “External tool”-button in Visual Studio. Here we go:
Generate MsTest’s from your .feature-file
With this step you can generate the test from...