Rails: Removing the cucumber-rails warning when setting cache_classes to false without Spring enabled

We are using Spring in our tests for sequential test execution but not for parallel test execution. And Rails requires you to set the config.cache_classes = false if you are using Spring in tests.

With our setup, this would raise the following error in cucumber-rails Show archive.org snapshot for parallel test executions due to some legacy database cleaner issue.

WARNING: You have set Rails' config.cache_classes to false
    (Spring needs cache_classes set to false). This is known to cause problems
    with database transactions. Set config.cache_classes to true if you want to use transactions.

Fix

You need to upgrade to cucumber-rails >= 2.1.0 and adjust the config.cache_classes in config/environments/test.rb like below:

config.cache_classes = !defined?(Spring)
Emanuel Over 2 years ago