cucumber-rails 1.5.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/ISSUE_TEMPLATE.md +52 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +42 -0
- data/.gitignore +3 -1
- data/.rspec +4 -1
- data/.rubocop.yml +68 -0
- data/.travis.yml +43 -33
- data/Appraisals +25 -92
- data/{History.md → CHANGELOG.md} +242 -40
- data/CONTRIBUTING.md +15 -24
- data/Gemfile +2 -4
- data/LICENSE +1 -1
- data/README.md +57 -27
- data/Rakefile +18 -14
- data/bin/install_geckodriver.sh +19 -0
- data/bin/install_webpacker.sh +9 -0
- data/config/cucumber.yml +2 -5
- data/cucumber-rails.gemspec +35 -28
- data/dev_tasks/cucumber.rake +2 -0
- data/dev_tasks/rspec.rake +2 -0
- data/dev_tasks/yard.rake +7 -14
- data/dev_tasks/yard/default/layout/html/setup.rb +6 -1
- data/features/allow_rescue.feature +16 -11
- data/features/annotations.feature +8 -11
- data/features/capybara_javascript_drivers.feature +38 -28
- data/features/choose_javascript_database_strategy.feature +37 -57
- data/features/configuration.feature +48 -0
- data/features/database_cleaner.feature +18 -18
- data/features/disable_automatic_database_cleaning.feature +12 -18
- data/features/emulate_javascript.feature +64 -47
- data/features/install_cucumber_rails.feature +4 -4
- data/features/no_database.feature +8 -19
- data/features/raising_errors.feature +9 -3
- data/features/rerun_profile.feature +17 -7
- data/features/rest_api.feature +12 -12
- data/features/step_definitions/cucumber_rails_steps.rb +44 -88
- data/features/support/aruba.rb +3 -1
- data/features/support/cucumber_rails_helper.rb +85 -0
- data/features/support/env.rb +4 -30
- data/features/support/hooks.rb +8 -0
- data/gemfiles/rails_4_2.gemfile +5 -13
- data/gemfiles/rails_5_0.gemfile +5 -12
- data/gemfiles/rails_5_1.gemfile +4 -9
- data/gemfiles/rails_5_2.gemfile +10 -0
- data/gemfiles/rails_6_0.gemfile +9 -0
- data/lib/cucumber/rails.rb +17 -15
- data/lib/cucumber/rails/action_dispatch.rb +21 -0
- data/lib/cucumber/rails/application.rb +16 -7
- data/lib/cucumber/rails/capybara.rb +2 -0
- data/lib/cucumber/rails/capybara/javascript_emulation.rb +45 -37
- data/lib/cucumber/rails/capybara/select_dates_and_times.rb +6 -4
- data/lib/cucumber/rails/database.rb +30 -8
- data/lib/cucumber/rails/hooks.rb +2 -0
- data/lib/cucumber/rails/hooks/active_record.rb +14 -12
- data/lib/cucumber/rails/hooks/allow_rescue.rb +2 -0
- data/lib/cucumber/rails/hooks/database_cleaner.rb +6 -4
- data/lib/cucumber/rails/hooks/mail.rb +4 -4
- data/lib/cucumber/rails/rspec.rb +3 -1
- data/lib/cucumber/rails/world.rb +24 -7
- data/lib/generators/cucumber/{install/USAGE → USAGE} +0 -0
- data/lib/generators/cucumber/{install/install_generator.rb → install_generator.rb} +23 -10
- data/lib/generators/cucumber/{install/templates → templates}/config/cucumber.yml.erb +4 -3
- data/lib/generators/cucumber/{install/templates → templates}/script/cucumber +1 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/_rails_each_run.rb.erb +2 -2
- data/lib/generators/cucumber/{install/templates → templates}/support/_rails_prefork.rb.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/capybara.rb +2 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/edit_warning.txt +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/rails.rb.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/rails_spork.rb.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/tasks/cucumber.rake.erb +9 -9
- data/spec/cucumber/rails/database_spec.rb +46 -33
- data/spec/generators/cucumber/{install/install_generator_spec.rb → install_generator_spec.rb} +17 -9
- data/spec/spec_helper.rb +13 -4
- metadata +105 -139
- data/Gemfile.appraisal +0 -3
- data/features/support/bundler_pre_support.rb +0 -28
- data/features/support/fixtures/bundler-1.0.21.gem +0 -0
- data/features/support/fixtures/bundler-1.1.rc.gem +0 -0
- data/features/support/legacy_web_steps_support.rb +0 -289
- data/gemfiles/lowest_version_bounds.gemfile +0 -26
- data/gemfiles/rails_4_0.gemfile +0 -19
- data/gemfiles/rails_4_1.gemfile +0 -18
- data/lib/cucumber/rails/action_controller.rb +0 -12
@@ -1,111 +1,67 @@
|
|
1
|
-
|
2
|
-
def rails_new(options = {})
|
3
|
-
options[:name] ||= 'test_app'
|
4
|
-
command = run "bundle exec rails new #{options[:name]} --skip-bundle --skip-test-unit --skip-spring #{options[:args]}"
|
5
|
-
expect(command).to have_output /README/
|
6
|
-
expect(last_command_started).to be_successfully_executed
|
7
|
-
cd options[:name]
|
8
|
-
delete_environment_variable 'RUBYOPT'
|
9
|
-
delete_environment_variable 'BUNDLE_BIN_PATH'
|
10
|
-
delete_environment_variable 'BUNDLE_GEMFILE'
|
11
|
-
# Force older version of nokogiri on older Rubies
|
12
|
-
gem 'nokogiri', '~> 1.6.8' if RUBY_VERSION < '2.1.0'
|
13
|
-
run_simple 'bundle install'
|
14
|
-
end
|
15
|
-
|
16
|
-
def install_cucumber_rails(*options)
|
17
|
-
if options.include?(:not_in_test_group)
|
18
|
-
gem 'cucumber-rails', path: "#{File.expand_path('.')}"
|
19
|
-
else
|
20
|
-
gem 'cucumber-rails' , group: :test, require: false, path: "#{File.expand_path('.')}"
|
21
|
-
end
|
22
|
-
# From Rails 5.1 some gems are already part of the Gemfile
|
23
|
-
if Gem.loaded_specs['rails'].version < Gem::Version.new('5.1.0')
|
24
|
-
gem 'capybara', group: :test
|
25
|
-
gem 'selenium-webdriver', group: :test
|
26
|
-
else
|
27
|
-
# Make sure to restrict the selected selenium-webdriver version
|
28
|
-
# Since version 3 geckodriver is required to be installed
|
29
|
-
gemfile_text = File.read(expand_path('Gemfile'))
|
30
|
-
gemfile_text.gsub!("gem 'selenium-webdriver'", "gem 'selenium-webdriver', '~> 2.0'")
|
31
|
-
overwrite_file('Gemfile', gemfile_text)
|
32
|
-
end
|
33
|
-
gem 'rspec-rails', group: :test
|
34
|
-
gem 'database_cleaner', group: :test unless options.include?(:no_database_cleaner)
|
35
|
-
gem 'factory_girl', group: :test unless options.include?(:no_factory_girl)
|
36
|
-
# Newer versions of rake remove a method used by RSpec older versions
|
37
|
-
# See https://stackoverflow.com/questions/35893584/nomethoderror-undefined-method-last-comment-after-upgrading-to-rake-11#35893625
|
38
|
-
if Gem::Version.new(RSpec::Support::Version::STRING) < Gem::Version.new('3.4.4')
|
39
|
-
gem 'rake', '< 11.0'
|
40
|
-
run_simple 'bundle update rake --local'
|
41
|
-
end
|
42
|
-
run_simple 'bundle exec rails generate cucumber:install'
|
43
|
-
end
|
44
|
-
|
45
|
-
def gem(name, options)
|
46
|
-
line = %{gem "#{name}", #{options.inspect}\n}
|
47
|
-
append_to_file('Gemfile', line)
|
48
|
-
end
|
49
|
-
|
50
|
-
def prepare_aruba_report
|
51
|
-
if(ENV['ARUBA_REPORT_DIR'])
|
52
|
-
@aruba_report_start = Time.new
|
53
|
-
sleep(1)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def fixture(path)
|
58
|
-
File.expand_path(File.dirname(__FILE__) + "./../support/fixtures/#{path}")
|
59
|
-
end
|
60
|
-
end
|
61
|
-
World(CucumberRailsHelper)
|
1
|
+
# frozen_string_literal: true
|
62
2
|
|
63
|
-
Given
|
3
|
+
Given('I have created a new Rails app and installed cucumber-rails, accidentally outside of the test group in my Gemfile') do
|
64
4
|
rails_new
|
65
5
|
install_cucumber_rails :not_in_test_group
|
66
|
-
create_web_steps
|
67
|
-
prepare_aruba_report
|
68
6
|
end
|
69
7
|
|
70
|
-
Given
|
71
|
-
rails_new name: app_name
|
72
|
-
install_cucumber_rails
|
73
|
-
create_web_steps
|
74
|
-
prepare_aruba_report
|
75
|
-
end
|
76
|
-
|
77
|
-
Given /^I have created a new Rails app and installed cucumber\-rails$/ do
|
8
|
+
Given('I have created a new Rails app and installed cucumber-rails') do
|
78
9
|
rails_new
|
79
10
|
install_cucumber_rails
|
80
|
-
create_web_steps
|
81
|
-
prepare_aruba_report
|
82
11
|
end
|
83
12
|
|
84
|
-
Given
|
13
|
+
Given('I have created a new Rails app with no database and installed cucumber-rails') do
|
85
14
|
rails_new args: '--skip-active-record'
|
86
|
-
install_cucumber_rails :no_database_cleaner, :
|
15
|
+
install_cucumber_rails :no_database_cleaner, :no_factory_bot
|
87
16
|
overwrite_file('features/support/env.rb', "require 'cucumber/rails'\n")
|
88
|
-
create_web_steps
|
89
17
|
end
|
90
18
|
|
91
|
-
Given
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
19
|
+
Given('I have a {string} ActiveRecord model object') do |name|
|
20
|
+
run_command_and_stop("bundle exec rails g model #{name}")
|
21
|
+
run_command_and_stop('bundle exec rake db:migrate RAILS_ENV=test')
|
22
|
+
end
|
23
|
+
|
24
|
+
Given('I remove the {string} gem from the Gemfile') do |gem_name|
|
25
|
+
content = File.open(expand_path('Gemfile'), 'r').readlines
|
26
|
+
new_content = []
|
27
|
+
|
28
|
+
content.each do |line|
|
29
|
+
next if /gem ["|']#{gem_name}["|'].*/.match?(line)
|
30
|
+
|
31
|
+
new_content << line
|
32
|
+
end
|
33
|
+
|
34
|
+
overwrite_file('Gemfile', new_content.join("\r\n"))
|
96
35
|
end
|
97
36
|
|
98
|
-
Given
|
99
|
-
|
100
|
-
|
37
|
+
Given('I force selenium to run Firefox in headless mode') do
|
38
|
+
selenium_config = %{
|
39
|
+
Capybara.register_driver :selenium do |app|
|
40
|
+
http_client = Selenium::WebDriver::Remote::Http::Default.new
|
41
|
+
http_client.read_timeout = 180
|
42
|
+
|
43
|
+
browser_options = Selenium::WebDriver::Firefox::Options.new
|
44
|
+
browser_options.args << '--headless'
|
45
|
+
Capybara::Selenium::Driver.new(
|
46
|
+
app,
|
47
|
+
browser: :firefox,
|
48
|
+
options: browser_options,
|
49
|
+
http_client: http_client
|
50
|
+
)
|
51
|
+
end
|
52
|
+
|
53
|
+
Capybara.server = :webrick
|
54
|
+
}
|
55
|
+
|
56
|
+
step 'I append to "features/support/env.rb" with:', selenium_config
|
101
57
|
end
|
102
58
|
|
103
|
-
When
|
104
|
-
|
59
|
+
When('I run the cukes') do
|
60
|
+
run_command_and_stop('bundle exec cucumber')
|
105
61
|
end
|
106
62
|
|
107
63
|
# Copied from Aruba
|
108
|
-
Then
|
64
|
+
Then('the feature run should pass with:') do |string|
|
109
65
|
step 'the output should not contain " failed)"'
|
110
66
|
step 'the output should not contain " undefined)"'
|
111
67
|
step 'the exit status should be 0'
|
data/features/support/aruba.rb
CHANGED
@@ -0,0 +1,85 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CucumberRailsHelper
|
4
|
+
def rails_new(options = {})
|
5
|
+
validate_rails_new_success(run_rails_new_command(options))
|
6
|
+
clear_bundle_env_vars(options[:name])
|
7
|
+
end
|
8
|
+
|
9
|
+
def install_cucumber_rails(*options)
|
10
|
+
add_conditional_gems(options)
|
11
|
+
|
12
|
+
add_gem 'capybara', group: :test
|
13
|
+
add_gem 'selenium-webdriver', '~> 3.11', group: :test
|
14
|
+
add_gem 'rspec-expectations', '~> 3.7', group: :test
|
15
|
+
add_gem 'database_cleaner', '>= 1.8.0', group: :test unless options.include?(:no_database_cleaner)
|
16
|
+
add_gem 'factory_bot', '>= 3.2', group: :test unless options.include?(:no_factory_bot)
|
17
|
+
|
18
|
+
run_command_and_stop 'bundle install'
|
19
|
+
run_command_and_stop 'bundle exec rails webpacker:install' if rails6?
|
20
|
+
run_command_and_stop 'bundle exec rails generate cucumber:install'
|
21
|
+
end
|
22
|
+
|
23
|
+
def add_gem(name, *args)
|
24
|
+
line = convert_gem_opts_to_string(name, *args)
|
25
|
+
gem_regexp = /gem ["']#{name}["'].*$/
|
26
|
+
gemfile_content = File.read(expand_path('Gemfile'))
|
27
|
+
|
28
|
+
if gemfile_content&.match?(gem_regexp)
|
29
|
+
updated_gemfile_content = gemfile_content.gsub(gem_regexp, line)
|
30
|
+
overwrite_file('Gemfile', updated_gemfile_content)
|
31
|
+
else
|
32
|
+
append_to_file('Gemfile', line)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def run_rails_new_command(options)
|
39
|
+
options[:name] ||= 'test_app'
|
40
|
+
flags = '--skip-bundle --skip-test-unit --skip-spring --skip-bootsnap'
|
41
|
+
flags += ' --skip-webpack-install' if rails6?
|
42
|
+
run_command "bundle exec rails new #{options[:name]} #{flags} #{options[:args]}"
|
43
|
+
end
|
44
|
+
|
45
|
+
def validate_rails_new_success(result)
|
46
|
+
expect(result).to have_output(/README/)
|
47
|
+
expect(last_command_started).to be_successfully_executed
|
48
|
+
end
|
49
|
+
|
50
|
+
def clear_bundle_env_vars(dir)
|
51
|
+
cd dir
|
52
|
+
delete_environment_variable 'RUBYOPT'
|
53
|
+
delete_environment_variable 'BUNDLE_BIN_PATH'
|
54
|
+
delete_environment_variable 'BUNDLE_GEMFILE'
|
55
|
+
end
|
56
|
+
|
57
|
+
def rails6?
|
58
|
+
`bundle exec rails -v`.start_with?('Rails 6')
|
59
|
+
end
|
60
|
+
|
61
|
+
def add_conditional_gems(options)
|
62
|
+
if options.include?(:not_in_test_group)
|
63
|
+
add_gem 'cucumber-rails', path: File.expand_path('.').to_s
|
64
|
+
else
|
65
|
+
add_gem 'cucumber-rails', group: :test, require: false, path: File.expand_path('.').to_s
|
66
|
+
end
|
67
|
+
|
68
|
+
if rails6?
|
69
|
+
add_gem 'sqlite3', '~> 1.4'
|
70
|
+
else
|
71
|
+
add_gem 'sqlite3', '~> 1.3.13'
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def convert_gem_opts_to_string(name, *args)
|
76
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
77
|
+
parts = ["'#{name}'"]
|
78
|
+
parts << args.map(&:inspect) if args.any?
|
79
|
+
parts << options.inspect[1..-2] if options.any?
|
80
|
+
new_parts = parts.flatten.map { |part| part.gsub(/:(\w+)=>/, '\1: ') }
|
81
|
+
"gem #{new_parts.join(', ')}\n"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
World(CucumberRailsHelper)
|
data/features/support/env.rb
CHANGED
@@ -1,32 +1,6 @@
|
|
1
|
-
|
2
|
-
require 'rubygems'
|
3
|
-
require 'bundler/setup'
|
4
|
-
require 'rspec/expectations'
|
5
|
-
require 'aruba/cucumber'
|
6
|
-
|
7
|
-
if(ENV['ARUBA_REPORT_DIR'])
|
8
|
-
# Override reporting behaviour so we don't document all files, only the ones
|
9
|
-
# that have been created after @aruba_report_start (a Time object). This is
|
10
|
-
# given a value after the Rails app is generated (see cucumber_rails_steps.rb)
|
11
|
-
module Aruba
|
12
|
-
module Reporting
|
13
|
-
def children(dir)
|
14
|
-
children = Dir["#{dir}/*"].sort
|
1
|
+
# frozen_string_literal: true
|
15
2
|
|
16
|
-
|
17
|
-
children = children.select do |child|
|
18
|
-
File.directory?(child) ||
|
19
|
-
(@aruba_report_start && File.stat(child).mtime > @aruba_report_start)
|
20
|
-
end
|
3
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
|
21
4
|
|
22
|
-
|
23
|
-
|
24
|
-
child =~ /Gemfile/ ||
|
25
|
-
child =~ /\.log$/
|
26
|
-
end
|
27
|
-
|
28
|
-
children
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
5
|
+
require 'rspec/expectations'
|
6
|
+
require 'aruba/cucumber'
|
data/gemfiles/rails_4_2.gemfile
CHANGED
@@ -2,17 +2,9 @@
|
|
2
2
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
|
-
gem "
|
6
|
-
gem "
|
7
|
-
gem "
|
8
|
-
gem "
|
9
|
-
gem "rspec-rails", "~> 3.1.0"
|
10
|
-
gem "sass-rails", "~> 5.0"
|
11
|
-
gem "coffee-rails", "~> 4.1.0"
|
12
|
-
gem "jquery-rails"
|
13
|
-
gem "uglifier", "~> 2.1.0"
|
14
|
-
gem "sqlite3", "~> 1.3.7"
|
15
|
-
gem "database_cleaner", "~> 1.0.1"
|
16
|
-
gem "rake", "< 11.0"
|
5
|
+
gem "capybara", "< 3.16.0", platform: :mri_23
|
6
|
+
gem "nokogiri", "< 1.9.1", platform: :mri_23
|
7
|
+
gem "railties", "~> 4.2.11"
|
8
|
+
gem "sqlite3", "~> 1.3.13"
|
17
9
|
|
18
|
-
gemspec :
|
10
|
+
gemspec path: "../"
|
data/gemfiles/rails_5_0.gemfile
CHANGED
@@ -2,16 +2,9 @@
|
|
2
2
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
|
-
gem "
|
6
|
-
gem "
|
7
|
-
gem "
|
8
|
-
gem "
|
9
|
-
gem "rspec-rails", "~> 3.5.0"
|
10
|
-
gem "sass-rails", "~> 5.0"
|
11
|
-
gem "coffee-rails", "~> 4.2.0"
|
12
|
-
gem "jquery-rails"
|
13
|
-
gem "uglifier", "~> 2.7.2"
|
14
|
-
gem "sqlite3", "~> 1.3.7"
|
15
|
-
gem "database_cleaner", ">= 1.1.0"
|
5
|
+
gem "capybara", "< 3.16.0", platform: :mri_23
|
6
|
+
gem "nokogiri", "< 1.9.1", platform: :mri_23
|
7
|
+
gem "railties", "~> 5.0.7"
|
8
|
+
gem "sqlite3", "~> 1.3.13"
|
16
9
|
|
17
|
-
gemspec :
|
10
|
+
gemspec path: "../"
|
data/gemfiles/rails_5_1.gemfile
CHANGED
@@ -2,14 +2,9 @@
|
|
2
2
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
|
-
gem "
|
6
|
-
gem "
|
7
|
-
gem "
|
8
|
-
gem "rspec-rails", "~> 3.5.0"
|
9
|
-
gem "sass-rails", "~> 5.0"
|
10
|
-
gem "coffee-rails", "~> 4.2.0"
|
11
|
-
gem "uglifier", "~> 3.2.0"
|
5
|
+
gem "capybara", "< 3.16.0", platform: :mri_23
|
6
|
+
gem "nokogiri", "< 1.9.1", platform: :mri_23
|
7
|
+
gem "railties", "~> 5.1.7"
|
12
8
|
gem "sqlite3", "~> 1.3.13"
|
13
|
-
gem "database_cleaner", ">= 1.1.0"
|
14
9
|
|
15
|
-
gemspec :
|
10
|
+
gemspec path: "../"
|
data/lib/cucumber/rails.rb
CHANGED
@@ -1,21 +1,22 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
called_from_env_rb = caller.detect { |f| f =~ /\/env\.rb:/ }
|
4
|
+
|
5
|
+
if called_from_env_rb
|
6
|
+
env_caller = File.dirname(called_from_env_rb)
|
7
|
+
|
3
8
|
require 'rails'
|
4
9
|
require 'cucumber/rails/application'
|
5
10
|
ENV['RAILS_ENV'] ||= 'test'
|
6
11
|
ENV['RAILS_ROOT'] ||= File.expand_path(env_caller + '/../..')
|
7
12
|
require File.expand_path(ENV['RAILS_ROOT'] + '/config/environment')
|
8
|
-
require 'cucumber/rails/
|
9
|
-
|
10
|
-
if defined?(ActiveRecord::Base)
|
11
|
-
require 'rails/test_help'
|
12
|
-
else
|
13
|
-
require 'action_dispatch/testing/test_process'
|
14
|
-
require 'action_dispatch/testing/integration'
|
15
|
-
end
|
13
|
+
require 'cucumber/rails/action_dispatch'
|
14
|
+
require 'rails/test_help'
|
16
15
|
|
17
|
-
unless Rails.application.config.cache_classes
|
18
|
-
warn "WARNING: You have set Rails' config.cache_classes to false
|
16
|
+
unless Rails.application.config.cache_classes || defined?(Spring)
|
17
|
+
warn "WARNING: You have set Rails' config.cache_classes to false
|
18
|
+
(Spring needs cache_classes set to false). This is known to cause problems
|
19
|
+
with database transactions. Set config.cache_classes to true if you want to use transactions."
|
19
20
|
end
|
20
21
|
|
21
22
|
require 'cucumber/rails/world'
|
@@ -25,7 +26,8 @@ if env_caller
|
|
25
26
|
|
26
27
|
MultiTest.disable_autorun
|
27
28
|
else
|
28
|
-
warn "WARNING: Cucumber-rails required outside of env.rb. The rest of loading is being deferred
|
29
|
-
To avoid this warning, move 'gem \'cucumber-rails\', :
|
30
|
-
If already in the :test group, be sure you are
|
29
|
+
warn "WARNING: Cucumber-rails required outside of env.rb. The rest of loading is being deferred
|
30
|
+
until env.rb is called. To avoid this warning, move 'gem \'cucumber-rails\', require: false'
|
31
|
+
under only group :test in your Gemfile. If already in the :test group, be sure you are
|
32
|
+
specifying 'require: false'."
|
31
33
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
ActionController::Base.class_eval do
|
4
|
+
cattr_accessor :allow_rescue
|
5
|
+
end
|
6
|
+
|
7
|
+
module Cucumber
|
8
|
+
module Rails
|
9
|
+
module ActionDispatch
|
10
|
+
module ShowExceptions
|
11
|
+
def call(env)
|
12
|
+
env['action_dispatch.show_detailed_exceptions'] = !ActionController::Base.allow_rescue
|
13
|
+
env['action_dispatch.show_exceptions'] = !env['action_dispatch.show_detailed_exceptions']
|
14
|
+
super(env)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
ActionDispatch::ShowExceptions.prepend(Cucumber::Rails::ActionDispatch::ShowExceptions)
|