Skip to content
This repository

Acceptance testing with Cucumber using a git-based wiki to store feature stories

Fetching latest commit…

Cannot retrieve the latest commit at this time


Gitnesse is an acceptance testing tool.

It enables a project to store Cucumber feature stories in a git-based wiki, test them against your code, and then update the wiki with the latest test results.

The advantage is, that the features are on a wiki, so non-programmers can see them, and edit using the wiki. Hence an awesome bi-directional testing flow between developers and non-developers on a team.

Conceptually influenced by Fitnesse thank you Uncle Bob!


Add this line to your application's Gemfile:

gem 'gitnesse'

And then execute:

$ bundle

Or install it yourself as:

$ gem install gitnesse

Create a gitnesse.rb file somewhere in your project, and add something like the following to it:

Gitnesse.configure do |config|
  config.repository_url = ""
  config.annotate_results = true = "Bob Martin's development laptop"

rake tasks

$ rake gitnesse:pull
$ rake gitnesse:push
$ rake gitnesse:run
$ rake gitnesse:info
$ rake gitnesse:push_results

Usage In Rails 3

For Rails 3 the rake tasks should automatically just appear, as long as you have added the gitnesse gem to your Gemfile.

There is an example application using Rails 3 located here:

Usage In Sinatra

To use gitnesse in a Sinatra application, simple add this line of code to your Rakefile:

require "gitnesse/tasks"

There is an example application using Sinatra located here:

Other Usage

Want to use plain old Gitnesse? There is an executable, if you're allergic to rake tasks:

$ gitnesse


- pluggable feature runners, so can be used with Spinach, Cucumber-JS, or ?
- standalone server so end users to run tests and see live results, just like Fitnesse


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Something went wrong with that request. Please try again.