How to require different Cucumber config files in isolation?
By default, the knapsack_pro
gem requires all files from your test directory (the features
directory). If you have multiple config files in your features/support/
directory, then all the config files will be loaded and may interfere with each other.
In order to use two different config files in isolation, you need to specify a path to the config file with KNAPSACK_PRO_TEST_DIR
environment variable:
export KNAPSACK_PRO_TEST_DIR="features/support/cucumber_config_1.rb"
bundle exec rake "knapsack_pro:queue:cucumber[--verbose]"
Please remember to require the knapsack_pro
config in the features/support/cucumber_config_1.rb
. You also need to do it for your second config file: features/support/cucumber_config_2.rb
.
When might two different Cucumber config files be useful?
You may want to do that when you want a different configuration to be applied to specific sets of tests. For example, we could have separate configs for running user dashboard tests, and admin dashboard tests, like so:
User dashboard tests with the first config:
export KNAPSACK_PRO_TEST_DIR="features/support/cucumber_config_1.rb"
export KNAPSACK_PRO_TEST_SUITE_TOKEN_CUCUMBER=api_token_1
export KNAPSACK_PRO_TEST_FILE_PATTERN="features/user_dashboard/**{,/*/**}/*.feature"
bundle exec rake "knapsack_pro:queue:cucumber[--verbose]"
Admin dashboard tests using the second config:
export KNAPSACK_PRO_TEST_DIR="features/support/cucumber_config_2.rb"
export KNAPSACK_PRO_TEST_SUITE_TOKEN_CUCUMBER=api_token_2
export KNAPSACK_PRO_TEST_FILE_PATTERN="features/admin_dashboard/**{,/*/**}/*.feature"
bundle exec rake "knapsack_pro:queue:cucumber[--verbose]"