cheat sheets.

$ cheat cucumber_tags
Tags
Page History
Tags are a great way to organise your features and scenarios. Consider this
example:

@billing
Feature: Verify billing

  @important
  Scenario: Missing product description

  Scenario: Several products
A Scenario or feature can have as many tags as you like. Just separate them with
spaces:

@billing @bicker @annoy
Feature: Verify billing
Tag Inheritance
Any tag that exists on a Feature will be inherited by Scenario, Scenario Outline
or Examples.

Running a subset of scenarios
You can use the --tags option to tell Cucumber that you only want to run
features or scenarios that have (or don’t have) certain tags. Examples:

cucumber --tags @billing            # Runs both scenarios
cucumber --tags @important          # Runs the first scenario
cucumber --tags ~@important         # Runs the second scenario (Scenarios
without @important)

cucumber --tags @billing --tags @important    # Runs the first scenario
(Scenarios with @important AND @billing)
cucumber --tags @billing,@important           # Runs both scenarios (Scenarios
with @important OR @billing)
(Another way to “filter” what you want to run is to use the
file.feature:line pattern or the --scenario option as described in Running
Features).

Tags is also a great way to “link” your Cucumber features to other
documents. For example, if you have to deal with old school requirements in a
different system (Word, Excel, a wiki) you can refer to numbers:

@BJ-x98.77 @BJ-z12.33
Feature: Convert transaction
Another creative way to use tags is to keep track of where in the development
process a certain feature is:

@qa_ready
Feature: Index projects
Tags are also used in Tagged Hooks, which let you use tags to define what Before
and After blocks get run for what scenarios.

Logically ANDing and ORing Tags
As you may have seen in the previous examples Cucumber allows you to use logical
ANDs and ORs to help gain greater control of what features to run.

Tags which are comma separated are ORed:

Example: Running scenarios which match @important OR @billing

cucumber --tags @billing,@important
Tags which are passed in separate —tags are ANDed

Example: Running scenarios which match @important AND @billing

cucumber --tags @billing --tags @important
You can combine these two methods to create powerful selection criteria:

Example: Running scenarios which match: (@billing OR @WIP) AND @important

cucumber --tags @billing,@wip --tags @important
Example: Skipping both @todo and @wip tags

cucumber --tags ~@todo --tags ~@wip
You can use this tag logic in your Hooks as well.

This feature was originally added in version 0.4.3. The logical behaviour of
tags was later reversed in version 0.6.0.

Tag limits and WIP
If you’re following Kanban principles, you want to limit the work in progress
(WIP). The idea is that the fewer features or scenarios that being worked on
simultaneously, the quicker you’ll be able to implement new features.

Cucumber can enforce this using tag limits. Here is an example:

cucumber --tags @dev:2,@qa:3
This will make cucumber fail if you have more than 2 @dev tags or more than 3
@qa tags, even if each of your scenarios pass individually.

Used in conjunction with the --wip switch you can set up your project to enforce
the WIP limits of your team.

Special Tags
@allow-rescue: Turns off Cucumber’s exception capturing for the tagged
scenario(s). Used when the code being tested is expected to raise and handle
exceptions.

@javascript: Uses a javascript-aware system to process web requests (e.g.,
Selenium) instead of the default (non-javascript-aware) webrat browser.

@no-txn: Turns off transactions.
Version 1, updated 251 days ago.
. o 0 ( edit | history )
( add new | see all )