Skip to content
x97mdr edited this page Oct 24, 2011 · 15 revisions

Welcome!

Have you had your features locked up in your code too long? Been struggling for a way to share them with your client and use them as a reference? Interested in starting living documentation? If so, then Pickles is for you. What better way to preserve cucumbers than to pickle them ... (insert hook stage-left here)

What does it do for me?

Pickles was greatly influenced by the Specification by Example book from Gojko Adzic and Relish. While I love the idea behind Relish I don't use Ruby and I'm on a corporate intranet so a SaaS application that is only on the internet is useless to me.

Pickles is very simple at heart. You point it to a directory tree containing your feature files and it will search that tree, cataloging each .feature file it finds and converting it to HTML. It will then generate a set of HTML files in a location of your choosing. Pickles turns the plain-text feature into easy-to-read HTML that have a table of contents included so that you can easily navigate among the features. As the project moves forward I will add things like including Markdown files so you can add context to your features.

There are currently three ways of running Pickles:

  • [ConsoleApplication][Console Application]
  • [NAnt task][NAntTask]
  • [MSBuild Task][MSBuildTask]

Where did it come from?

When I first started doing acceptance tests, I was using FitNesse. That worked great for a while but the wiki syntax can be limiting and it can be a real pain to include in your continuous integration workflow, especially if you're using .NET like me. Having to start a server whenever I wanted to run tests was a little painful.

After a while I started searching for alternatives, came across Concordion and really liked it. I liked it so much that I ported it to .NET! The free-form HTML seemed kind of cool and the nice way it built up an index of pages was very handy. I was able to write the test runner so that it was easy to run the tests from either Visual Studio or a continuous integration build quite easily. However, the rule of one fixture per page and having to write HTML was limiting for myself, my team and my clients as they aren't that familiar with HTML.

Then I stumbled upon Cucumber and SpecFlow. SpecFlow is an excellent tool, hands down the best specification tool for .NET IMHO. It integrates very well with Visual Studio, provides several different test runners and is under active development. It uses the common and easy to understand Given-When-Then syntax and builds upon the great work done by the Cucumber people. SpecFlow uses NUnit, xUnit, etc. underneath so its easy to make part of a continuous integration build. It does have one drawback and this is that the feature files live in your Visual Studio project in source control. Really they are only navigable from within Visual Studio.

I build Pickles to overcome this last limitation and help make SpecFlow be part of a truly living documentation system

Contributions

See the [Contributions][HowToContribute] page

Acknowledgements

If you look at the source code you'll see I'm building on the shoulders of giants! Here is a (not-exhaustive) list of projects incorporated into Pickles

Influences

Clone this wiki locally