In order to differentiate between core and local/custom behaviors in cucumber, we have implemented additional rake tasks and have linked the default behavior to one of these: rake cucumber:local_with_core.
The following rake tasks are available:
Default or Local Plus Core
rake cucumber rake cucumber:local_with_core
Runs all features except those marked with @pending, @wip, or @overwritten. This should include all your custom features plus all core features that you have not overwritten.
If you find that you have a core feature that you expect to fail due to local changes in behavioral expectations, you should tag the core feature with @overwritten so that it will be ignored by this rake task.
The default task (rake cucumber) will check for previously failed tests and will run them prior to running the entire suite.
Work In Progress
Runs only features tagged with @wip. This task assumes that the feature you are working will fail.
Runs only features marked with the @local tag. This is good to get a quick look at the status of your customized behaviors.
Runs all features not marked with the following tags: @wip, @local, and @pending. This runs what would be the default feature set prior to any customization.
The tasks rely on the following cucumber tags:
Tag your custom cucumber features with @local. These will be picked up by the default, local, and local_with_core tasks, but will be ignored by the core task.
Tag the core features whose behavior is no longer valid for your customized environment with @overwritten. These features will be ignored by the default, local and local_with_core tasks, but picked up by core.
To have a feature completely ignored by cucumber, add the @pending tag. Cucumber will ignore features marked with @pending.
In order to support cucumber’s default wip (work in progress) functionality, you can tag any feature you are currently working on with @wip. The current limit for this tag is set to 3.
These features will be ignored by all tasks except cucumber:wip.