No commit activity in last 3 years
No release in over 3 years
Add <%= grouped_features %> to your cucumber.yml and get your cucumber features divided into groups. Useful for parallel test running. e.g in Semaphore CI
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 10.0
~> 2.13

Runtime

 Project Readme

CI Status

Cucumber_in_groups

Splits your cucumber features into groups to run them separately. Useful for parallel test running. e.g in Semaphore CI

Usage

In your Gemfile

gem "cucumber_in_groups", :require => false, :group => [:development, :test]

In the beginning of your cucumber.yml, add this line:

<% require 'cucumber_in_groups' %>

Then update your profiles cucumber.yml so that Cucumber takes "*.feature" files from <%= grouped_features %> instead of the default "features" directory:

<% common = "--tags ~@wip --strict" %>

# default: <%= common %> features
default: <%= common %> <%= grouped_features %>

# ci: <%= common %> --tags ~@noci features
ci: <%= common %> --tags ~@noci <%= grouped_features %>

Then in your CI script, use GROUP environment variable. Group numbers are 1-based (e.g. 1of3, 2of3, 3of3)

RAILS_ENV=test GROUP=1of2 bundle exec cucumber

Advanced Usage

You can specify custom feature directories by passing relative paths in grouped_features() call. The paths are relative to the project root.

<%= grouped_features("features", "../common_features", "some/other/features") %>

Pitfalls

Make sure you have enough features to divide them into groups. E.g. if you have only one "*.feature" file, the command below will give you unexpected results:

RAILS_ENV=test GROUP=2of2 bundle exec cucumber

This happens because <%= grouped_features %> expression returns empty string in this case, and cucumber may simply run all features instead of none.