bin | ||
lib | ||
skel | ||
.gitignore | ||
cuke-pack.gemspec | ||
Gemfile | ||
LICENSE | ||
Rakefile | ||
README.md |
cuke-pack
Common Cucumber setups to make things go fast and smooth.
Install it
# Gemfile
gem 'cuke-pack'
bundle exec cuke-pack install
This will overwrite your config/cucumber.yml
file with one that plugs in nicely with Guard. It also adds a new config file in
features/support/cuke-pack.rb
.
Specifying the driver
If you have other Capybara drivers installed like Poltergeist of persistent_selenium, you can specify the driver as an environment variable:
DRIVER=poltergeist bundle exec cucumber
Confirming JavaScript
If you need to confirm an alert()
or confirm()
, you can do so in your step with confirm_js
. Just replaces
window.alert
and window.confirm
with functions that return true.
Step Writer
Enables cucumber-step_writer for you.
Flay your steps
I can get duplicate code in my steps pretty quickly. Sometimes I flay them to see where the duplicates are and then I factor out the common code.
Hijacking @wip
I personally think the original use of @wip
in Cucumber is silly. Why would you commit non-working
features to the source repository? So this project re-purposes @wip
to let you focus your Cucumber test
runs on a single feature and work on it until it runs:
Guard
If you're using Guard for continuous testing, install the wip
guard:
bundle exec cuke-pack wip-guard
You can then use Guard to only run scenarios with the tag @wip
:
bundle exec guard -g wip
Precommit
If you run tests before committing your code with a tool like penchant,
you can configure your tests to run using the precommit
profile. This one ensures that there are no
@wip
scenarios. It also lets you skip certain features/scenarios that are tagged @no-precommit
. Good for
turning off tests that you haven't needed to touch in a while. Just be careful with it!
Other things
You can easily enable FakeFS, Mocha, and Timecop if you need them. Turn them on in cuke-pack.rb
and then use
the right tag on your scenario.
Old things
There's some stuff that is so deprecated that I'll remove it eventually, once all my other offending projects don't use them anymore. You shouldn't use them either.