### Setup

#### Ruby
0. Fork and clone this repo
0. [Install RVM](https://rvm.io/rvm/install) (don't use brew, and don't use a ruby installer)
0. Use RVM to install and select Ruby 2.2.0: `rvm install ruby-2.2.0`
0. Install the bundler gem: `gem install bundler`

#### Native Dependencies and Gems
0. Install gems using bundler: `bundle install`

#### Configuration
0. Copy `.env.shadow` to `.env`, and populate it with the necessary values

### Execution
Run `rake cucumber:all` to quietly run the entire suite.

Run `cucumber features/example.feature` to specifically run the feature.

Run `cucumber features/example.feature:8` to specifically run the scenario on
line 8.

### Contributing
Run `rake cucumber:pr` to run PR tests against the current branch. If Rubocop
finds a large number of errors, then you can automate some of the corrections
with `rubocop -a`.

### Conventions
* Tag incomplete scenarios as `@wip`.
* Pass objects between step definitions using instance variables.
* Write features in [declarative](http://itsadeliverything.com/declarative-vs-imperative-gherkin-scenarios-for-cucumber)
style
* Write features in a product-friendly way. See the cucumber suite in
`ows-features` for examples.
