Adam Ralph

Software, tea, and snowboarding

Announcing 2.0

I’m enormously happy to announce that 2.0 (based on 2.0) is now live and available on NuGet. Work on 2.0 began in April 2014, shortly after the first beta release of 2.0, and continued on and off for the next 16 months with the first 2.0 beta release in December.

Just like 2.0, 2.0 is a complete re-write from scratch, with only the public API type names and method signatures remaining relatively unchanged. However, only ‘half’ of the code base was in fact re-written. has dogfooded itself for it’s own acceptance tests since pre-1.0, and those acceptance tests have remained largely as is and only added to, throughout the whole exercise. This meant that 2.0 was developed almost entirely in true TDD style. The suite of 1.x acceptance tests already existed. All that needed to be done was to create a project linked against 2.0 which made those tests green!

Linking against 2.0 is not the only change in 2.0. Several new features have been added (and, of course accompanying acceptance tests), some changed and some taken away. For full details, see the Wiki.


As I’ve said before, by far the most important aspect of is you, the community. In particular, I’d like to call out the following people for their invaluable help in getting 2.0 out of the door:

Brad Wilson

Brad gave me a horde of advice and assistance over at the chat room and made a slew of changes to 2.0 during the beta phase which allowed 2.0 to come into existence. Not least, the split of the component packages into meta packages and *.extensibility.* packages. Thank you Brad for embracing the community during the development of 2.0 and for one of the most elegantly designed extensibility API’s this developer has ever had the pleasure to use!

Matt Ellis

During smoke testing with the ReSharper plug-in, I discovered some problems in the beta versions of both and the ReSharper plug-in. I was lucky enough to able to collaborate closely with Matt in the chat room, resulting in a cross-pollination of improvement and fixes to both products.

Remco Mulder

During smoke testing with a pre-release version of NCrunch linked against the 2.0 betas, I discovered some problems in both NCrunch and Remco spent a large amount of time with me in the chat room reproducing and identifying these problems and, together, we fixed the problems on either side of the integration until we got to a point where was crunching along nicely with NCrunch.

Urs Enzler

Urs gave me some enormously valuable feedback as a user of during the release candidate phase. Not least, he drove the split of the package into a meta package plus a core implementation package, to allow developers who do not want to take a dependency on xunit.assert to install the Xbehave.Core package instead of Xbehave, similarly to the xunit and xunit.core packages. Urs also presented the ideas which inspired the creation of the continuing on failure and step filters features. BTW, if you’re interested in generating Markdown output from your tests, check out his xBehaveMarkdownReport tool.


The next planned version of is 2.1, which will be linked against 2.1 (currently in beta), and will add support for the ‘dotnet’ (vNext, DNX, .NET Core, etc.) NuGet TFN.

If you’d like to help out, just head over to the GitHub repository where you can get familiar with the code, send pull requests or raise issues for new features, bugs, questions, discussions etc.

You can also ping me on Twitter or in the chat room on JabbR.

Thanks again!