actually write some docs
This commit is contained in:
parent
7e3e251dfb
commit
eb11223b23
84
README.md
84
README.md
|
@ -1,29 +1,79 @@
|
||||||
# Cuke::Pack
|
# cuke-pack
|
||||||
|
|
||||||
TODO: Write a gem description
|
Common Cucumber setups to make things go fast and smooth.
|
||||||
|
|
||||||
## Installation
|
## Install it
|
||||||
|
|
||||||
Add this line to your application's Gemfile:
|
``` ruby
|
||||||
|
# Gemfile
|
||||||
|
|
||||||
gem 'cuke-pack'
|
gem 'cuke-pack'
|
||||||
|
```
|
||||||
|
|
||||||
And then execute:
|
``` bash
|
||||||
|
bundle exec cuke-pack install
|
||||||
|
```
|
||||||
|
|
||||||
$ bundle
|
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`.
|
||||||
|
|
||||||
Or install it yourself as:
|
## Specifying the driver
|
||||||
|
|
||||||
$ gem install cuke-pack
|
If you have other Capybara drivers installed like Poltergeist of persistent_selenium, you can specify the driver as an
|
||||||
|
environment variable:
|
||||||
|
|
||||||
## Usage
|
``` bash
|
||||||
|
DRIVER=poltergeist bundle exec cucumber
|
||||||
|
```
|
||||||
|
|
||||||
TODO: Write usage instructions here
|
## Confirming JavaScript
|
||||||
|
|
||||||
## Contributing
|
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](http://github.com/johnbintz/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:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
bundle exec cuke-pack wip-guard
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then use Guard to only run scenarios with the tag `@wip`:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
bundle exec guard -g wip
|
||||||
|
```
|
||||||
|
|
||||||
|
### Precommit
|
||||||
|
|
||||||
|
If you run tests before committing your code with a tool like [penchant](http://github.com/johnbintz/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.
|
||||||
|
|
||||||
1. Fork it
|
|
||||||
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
||||||
3. Commit your changes (`git commit -am 'Added some feature'`)
|
|
||||||
4. Push to the branch (`git push origin my-new-feature`)
|
|
||||||
5. Create new Pull Request
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
def expect_fields(object, *fields, &block)
|
def expect_fields(object, *fields, &block)
|
||||||
|
$stderr.puts "expect_fields deprecated. Use semantic_rails_view_helpers instead."
|
||||||
@__expect_stack ||= 0
|
@__expect_stack ||= 0
|
||||||
@__expect_stack += 1
|
@__expect_stack += 1
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,8 @@ class WaitingForElementFailure < StandardError
|
||||||
end
|
end
|
||||||
|
|
||||||
def wait_for(times = MAX_TIMES, &block)
|
def wait_for(times = MAX_TIMES, &block)
|
||||||
|
$stderr.puts "wait_for deprecated. Just use find."
|
||||||
|
|
||||||
1.upto(times) do
|
1.upto(times) do
|
||||||
ok = false
|
ok = false
|
||||||
|
|
||||||
|
@ -68,6 +70,8 @@ def wait_for(times = MAX_TIMES, &block)
|
||||||
end
|
end
|
||||||
|
|
||||||
def wait_for_not(times = MAX_TIMES, &block)
|
def wait_for_not(times = MAX_TIMES, &block)
|
||||||
|
$stderr.puts "wait_for_not deprecated. Just use find."
|
||||||
|
|
||||||
original_time = Capybara.default_wait_time
|
original_time = Capybara.default_wait_time
|
||||||
Capybara.default_wait_time = 0
|
Capybara.default_wait_time = 0
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,10 @@ std_opts = "-r features --format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} -f Cucumb
|
||||||
%>
|
%>
|
||||||
default: <%= std_opts %> features
|
default: <%= std_opts %> features
|
||||||
wip: <%= std_opts %> --tags @wip features
|
wip: <%= std_opts %> --tags @wip features
|
||||||
precommit: FAILFAST=true <%= std_opts %> --tags ~@wip:0 features
|
precommit: <%= std_opts %> --tags ~@wip:0 --tags @no-precommit features
|
||||||
|
|
||||||
|
# or enable FAILFAST to have your tests end immediately on failure
|
||||||
|
#precommit: FAILFAST=true <%= std_opts %> --tags ~@wip:0 features
|
||||||
|
|
||||||
cleanup: <%= std_opts %> -f Cucumber::CleanupFormatter --out unused.txt features
|
cleanup: <%= std_opts %> -f Cucumber::CleanupFormatter --out unused.txt features
|
||||||
|
|
||||||
|
|
|
@ -1,36 +1,28 @@
|
||||||
require 'cuke-pack/support/pause'
|
# use confirm_js in your step to confirm all alert() and confirm() dialogs
|
||||||
require 'cuke-pack/support/pending'
|
|
||||||
require 'cuke-pack/support/confirm_js'
|
require 'cuke-pack/support/confirm_js'
|
||||||
require 'cuke-pack/support/expect_fields'
|
|
||||||
|
|
||||||
Before do
|
|
||||||
# if you want pending steps to pause before marking the step as pending,
|
|
||||||
# set @pause_ok to true
|
|
||||||
|
|
||||||
@pause_ok = false
|
|
||||||
end
|
|
||||||
|
|
||||||
|
# write out missing steps automatically
|
||||||
require 'cuke-pack/support/step_writer'
|
require 'cuke-pack/support/step_writer'
|
||||||
require 'cuke-pack/support/wait_for'
|
|
||||||
|
# fail instantly if ENV['FAILFAST'] is set
|
||||||
require 'cuke-pack/support/failfast'
|
require 'cuke-pack/support/failfast'
|
||||||
|
|
||||||
# set the level of flaying on the step definitions
|
# set the level of flaying on the step definitions
|
||||||
# set it to false to skip flaying
|
# set it to false to skip flaying
|
||||||
flay_level = 32
|
flay_level = 32
|
||||||
|
|
||||||
require 'cuke-pack/support/flay'
|
require 'cuke-pack/support/flay'
|
||||||
|
|
||||||
|
# enable fakefs with @fakefs
|
||||||
# require 'cuke-pack/support/fakefs'
|
# require 'cuke-pack/support/fakefs'
|
||||||
|
|
||||||
|
# enable mocha with @mocha
|
||||||
# require 'cuke-pack/support/mocha'
|
# require 'cuke-pack/support/mocha'
|
||||||
|
|
||||||
# Timecop support
|
# Timecop support with @timecop
|
||||||
# require 'cuke-pack/support/timecop'
|
# require 'cuke-pack/support/timecop'
|
||||||
|
|
||||||
# Browser drivers
|
# Browser drivers
|
||||||
# use with ENV['DRIVER']
|
# use with ENV['DRIVER']
|
||||||
|
require 'cuke-pack/drivers'
|
||||||
# require 'cuke-pack/driver/firefox'
|
# require 'cuke-pack/driver/firefox'
|
||||||
#
|
|
||||||
# Simple rails controller/view generator
|
|
||||||
# probably only any good for me
|
|
||||||
# require 'cuke-pack/support/rails_generator'
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue