Tagregate adds helpful Rake tasks to Ruby on Rails applications that use Cucumber tags.
Ruby
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.document
.gitignore
.rspec
Gemfile
Gemfile.lock
LICENSE.txt
README.rdoc
Rakefile
VERSION
tagregate.gemspec

README.rdoc

Tagregate

Tagregate adds helpful Rake tasks to Ruby on Rails applications that use Cucumber tags.

Why?

We now have a rather extensive Cucumber test suite at HowAboutWe, but even when it was smaller, it quickly became apparent that the long time it took to run the entire suite was negatively impacting our development process.

While any sufficiently large Cucumber suite will eventually need more substantial optimizations like parallel execution and fast hardware, a reasonable first step for us was to begin tagging each new feature with the areas of the codebase most related to our test. Then for example if we were reworking the signup page, we could run the @signup tag, get a decent level of confidence in the regression risk of our change, and only have to wait for a subset of our entire Cucumber test suite to finish running.

Eventually we had a considerable number of tags in our suite, so we wrote Tagregate to help us keep them organized and valuable.

Included Rake Tasks

rake cucumber:tagregate:count

Prints the name and number of occurrences of all Cucumber tags found in your application's features/ directory

rake cucumber:tagregate:file

Prints the name of each tag, along with each file in which the tag is being used.

Installation

# In your Rails application's Gemfile...
group :test, :development do
  gem "tagregate"
end

What is with the name?

This is probably best explained with an ascii illustration:

tag <--- aggregate =-
tag <-- aggregate =-
tag <- aggregate =-

  * g*   *
ta ** BOOM ** gregate
      *a *  *g *

tagregate

As you can see, letters were lost in the making of this name.

Copyright

Copyright © 2012 HowAboutWe. See LICENSE.txt for further details.