danlucraft /blog


January 2009 • Daniel Lucraft

SO your team has diligently been writing Cucumber Features in natural language English, so that non-devs can read and understand them. And you now have a large corpus of readable specs. But guess what, the features are locked in your version control system, and the non-devs either don’t know how to use it or just don’t need to. So this fantastic resource, an always up-to-date executable spec of your website, is actually pretty useless.

So use features_report to unlock those specs and turn them into a lovely PDF. Here’s a sample of the output. Install and use like this:

sudo gem install features_report
features_report features/*.feature


  • Uses Prawn to generate the PDF.
  • Has a table of contents of all your features.
  • Option to add a logo to the front page.
  • If you use git, it can add a ‘last changed date’ to the table of contents, along with the name of the committer that last touched it. (Requires the gem ‘mojombo-grit’ to be installed from Github).


  • The contents page is at the back. I don’t think Prawn has the capability to go back and add the contents page after the document has been generated, if I’m wrong please enlighten me.
  • FIT tables are not handled correctly. The Cucumber project is rewriting the parser at the moment, and it looks like adding this will be lots easier afterwards so we decided to wait.

The source is available at GitHub and features_report was written by Daniel Lucraft and Niko Felger. features_report was sponsored by Songkick.com. Thanks to Bryan Helmkamp for some cribbed Cucumber parsing code from features2cards.

blog comments powered by Disqus