You can use a few different configurations to have Cucumber filter which scenarios are run. This can be useful when you want to focus on a small subset of scenarios when developing or debugging.
You can specify an individual feature file to be run:
- In a configuration file
{ paths: ['features/my_feature.feature'] }
- On the CLI
cucumber-js features/my_feature.feature
You can also specify a line within a file to target an individual scenario:
- In a configuration file
{ paths: ['features/my_feature.feature:3'] }
- On the CLI
cucumber-js features/my_feature.feature:3
This option is repeatable, so you can provide several values and they'll be combined.
You can specify a regular expression against which scenario names are tested to filter which should run:
- In a configuration file
{ name: ['^start.+end$'] }
- On the CLI
cucumber-js --name "^start.+end$"
To escape special regex characters in scenario name, use backslashes e.g., \(Scenario Name\)
This option is repeatable, so you can provide several expressions and they'll all be used, meaning a scenario just needs to match one of them.
You can specify a Cucumber tag expression to only run scenarios that match it:
- In a configuration file
{ tags: '@foo or @bar' }
- On the CLI
cucumber-js --tags "@foo or @bar"
This option is repeatable, so you can provide several expressions and they'll be combined with an and
operator, meaning a scenario needs to match all of them.
You can specify the order that scenarios should run in:
- In a configuration file
{ order: 'defined' }
- On the CLI
cucumber-js --order defined
The default is defined
where scenarios are run in the order they are discovered in. This roughly means alphabetical order of file path followed by sequential order within each file, although if you pass multiple globs/paths to the paths
option this order will be honoured.
You can also specify random
to shuffle the scenarios randomly, and optionally specify a seed like random:234119
.