cucumber 3.1.2 → 4.0.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/CHANGELOG.md +173 -14
- data/CONTRIBUTING.md +2 -18
- data/README.md +4 -5
- data/bin/cucumber +1 -1
- data/lib/autotest/cucumber_mixin.rb +34 -39
- data/lib/cucumber.rb +1 -1
- data/lib/cucumber/cli/configuration.rb +5 -5
- data/lib/cucumber/cli/main.rb +12 -12
- data/lib/cucumber/cli/options.rb +69 -74
- data/lib/cucumber/cli/profile_loader.rb +49 -26
- data/lib/cucumber/configuration.rb +31 -23
- data/lib/cucumber/constantize.rb +2 -5
- data/lib/cucumber/deprecate.rb +31 -7
- data/lib/cucumber/errors.rb +5 -7
- data/lib/cucumber/events.rb +13 -6
- data/lib/cucumber/events/envelope.rb +9 -0
- data/lib/cucumber/events/gherkin_source_parsed.rb +11 -0
- data/lib/cucumber/events/hook_test_step_created.rb +13 -0
- data/lib/cucumber/events/step_activated.rb +2 -1
- data/lib/cucumber/events/test_case_created.rb +13 -0
- data/lib/cucumber/events/test_case_ready.rb +12 -0
- data/lib/cucumber/events/test_step_created.rb +13 -0
- data/lib/cucumber/events/undefined_parameter_type.rb +10 -0
- data/lib/cucumber/file_specs.rb +6 -6
- data/lib/cucumber/filters.rb +1 -0
- data/lib/cucumber/filters/activate_steps.rb +5 -3
- data/lib/cucumber/filters/broadcast_test_case_ready_event.rb +12 -0
- data/lib/cucumber/filters/prepare_world.rb +5 -9
- data/lib/cucumber/filters/quit.rb +1 -3
- data/lib/cucumber/filters/tag_limits/verifier.rb +2 -4
- data/lib/cucumber/formatter/ansicolor.rb +40 -45
- data/lib/cucumber/formatter/ast_lookup.rb +165 -0
- data/lib/cucumber/formatter/backtrace_filter.rb +9 -8
- data/lib/cucumber/formatter/console.rb +58 -66
- data/lib/cucumber/formatter/console_counts.rb +4 -9
- data/lib/cucumber/formatter/console_issues.rb +6 -3
- data/lib/cucumber/formatter/duration.rb +1 -1
- data/lib/cucumber/formatter/duration_extractor.rb +3 -1
- data/lib/cucumber/formatter/errors.rb +6 -0
- data/lib/cucumber/formatter/fanout.rb +2 -0
- data/lib/cucumber/formatter/html.rb +11 -598
- data/lib/cucumber/formatter/http_io.rb +146 -0
- data/lib/cucumber/formatter/ignore_missing_messages.rb +1 -1
- data/lib/cucumber/formatter/interceptor.rb +8 -28
- data/lib/cucumber/formatter/io.rb +17 -11
- data/lib/cucumber/formatter/json.rb +101 -109
- data/lib/cucumber/formatter/junit.rb +56 -56
- data/lib/cucumber/formatter/message.rb +22 -0
- data/lib/cucumber/formatter/message_builder.rb +255 -0
- data/lib/cucumber/formatter/pretty.rb +359 -153
- data/lib/cucumber/formatter/progress.rb +30 -32
- data/lib/cucumber/formatter/query/hook_by_test_step.rb +31 -0
- data/lib/cucumber/formatter/query/pickle_by_test.rb +26 -0
- data/lib/cucumber/formatter/query/pickle_step_by_test_step.rb +26 -0
- data/lib/cucumber/formatter/query/step_definitions_by_test_step.rb +40 -0
- data/lib/cucumber/formatter/query/test_case_started_by_test_case.rb +40 -0
- data/lib/cucumber/formatter/rerun.rb +22 -4
- data/lib/cucumber/formatter/stepdefs.rb +1 -2
- data/lib/cucumber/formatter/steps.rb +2 -3
- data/lib/cucumber/formatter/summary.rb +16 -8
- data/lib/cucumber/formatter/unicode.rb +15 -17
- data/lib/cucumber/formatter/usage.rb +11 -10
- data/lib/cucumber/gherkin/data_table_parser.rb +17 -6
- data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +13 -17
- data/lib/cucumber/gherkin/formatter/escaping.rb +2 -2
- data/lib/cucumber/gherkin/steps_parser.rb +17 -8
- data/lib/cucumber/glue/dsl.rb +1 -1
- data/lib/cucumber/glue/hook.rb +34 -11
- data/lib/cucumber/glue/invoke_in_world.rb +13 -18
- data/lib/cucumber/glue/proto_world.rb +42 -33
- data/lib/cucumber/glue/registry_and_more.rb +42 -12
- data/lib/cucumber/glue/snippet.rb +23 -22
- data/lib/cucumber/glue/step_definition.rb +42 -19
- data/lib/cucumber/glue/world_factory.rb +1 -1
- data/lib/cucumber/hooks.rb +11 -11
- data/lib/cucumber/multiline_argument.rb +4 -6
- data/lib/cucumber/multiline_argument/data_table.rb +97 -64
- data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +1 -1
- data/lib/cucumber/multiline_argument/doc_string.rb +1 -1
- data/lib/cucumber/platform.rb +3 -3
- data/lib/cucumber/rake/task.rb +16 -16
- data/lib/cucumber/rspec/disable_option_parser.rb +9 -8
- data/lib/cucumber/running_test_case.rb +2 -53
- data/lib/cucumber/runtime.rb +54 -58
- data/lib/cucumber/runtime/after_hooks.rb +8 -4
- data/lib/cucumber/runtime/before_hooks.rb +8 -4
- data/lib/cucumber/runtime/for_programming_languages.rb +4 -2
- data/lib/cucumber/runtime/step_hooks.rb +3 -2
- data/lib/cucumber/runtime/support_code.rb +13 -15
- data/lib/cucumber/runtime/user_interface.rb +6 -16
- data/lib/cucumber/step_definition_light.rb +4 -3
- data/lib/cucumber/step_definitions.rb +2 -2
- data/lib/cucumber/step_match.rb +12 -11
- data/lib/cucumber/step_match_search.rb +2 -1
- data/lib/cucumber/term/ansicolor.rb +9 -9
- data/lib/cucumber/version +1 -1
- metadata +224 -82
- data/lib/cucumber/events/gherkin_source_parsed.rb~ +0 -14
- data/lib/cucumber/formatter/ast_lookup.rb~ +0 -9
- data/lib/cucumber/formatter/cucumber.css +0 -286
- data/lib/cucumber/formatter/cucumber.sass +0 -247
- data/lib/cucumber/formatter/hook_query_visitor.rb +0 -42
- data/lib/cucumber/formatter/html_builder.rb +0 -121
- data/lib/cucumber/formatter/inline-js.js +0 -30
- data/lib/cucumber/formatter/jquery-min.js +0 -154
- data/lib/cucumber/formatter/json_pretty.rb +0 -11
- data/lib/cucumber/formatter/legacy_api/adapter.rb +0 -1028
- data/lib/cucumber/formatter/legacy_api/ast.rb +0 -394
- data/lib/cucumber/formatter/legacy_api/results.rb +0 -50
- data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +0 -32
- data/lib/cucumber/step_argument.rb +0 -25
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'cucumber/constantize'
|
4
4
|
require 'cucumber/cli/rerun_file'
|
5
5
|
require 'cucumber/events'
|
6
|
+
require 'cucumber/messages'
|
6
7
|
require 'cucumber/core/event_bus'
|
7
8
|
require 'cucumber/core/test/result'
|
8
9
|
require 'forwardable'
|
@@ -54,7 +55,7 @@ module Cucumber
|
|
54
55
|
end
|
55
56
|
|
56
57
|
def seed
|
57
|
-
|
58
|
+
@options[:seed]
|
58
59
|
end
|
59
60
|
|
60
61
|
def dry_run?
|
@@ -168,19 +169,23 @@ module Cucumber
|
|
168
169
|
|
169
170
|
def support_to_load
|
170
171
|
support_files = all_files_to_load.select { |f| f =~ %r{/support/} }
|
172
|
+
|
173
|
+
# env_files are separated from other_files so we can ensure env files
|
174
|
+
# load first.
|
175
|
+
#
|
171
176
|
env_files = support_files.select { |f| f =~ %r{/support/env\..*} }
|
172
177
|
other_files = support_files - env_files
|
173
|
-
|
178
|
+
env_files.reverse + other_files.reverse
|
174
179
|
end
|
175
180
|
|
176
181
|
def all_files_to_load
|
177
182
|
files = require_dirs.map do |path|
|
178
183
|
path = path.tr('\\', '/') # In case we're on windows. Globs don't work with backslashes.
|
179
|
-
path = path.gsub(/\/$/, '') # Strip trailing slash.
|
184
|
+
path = path.gsub(/\/$/, '') # Strip trailing slash. # rubocop:disable Style/RegexpLiteral
|
180
185
|
File.directory?(path) ? Dir["#{path}/**/*"] : path
|
181
186
|
end.flatten.uniq
|
182
187
|
remove_excluded_files_from(files)
|
183
|
-
files.
|
188
|
+
files.select! { |f| File.file?(f) }
|
184
189
|
files.reject! { |f| File.extname(f) == '.feature' }
|
185
190
|
files.reject! { |f| f =~ /^http/ }
|
186
191
|
files.sort
|
@@ -196,9 +201,8 @@ module Cucumber
|
|
196
201
|
factory = formatter_class(format)
|
197
202
|
yield factory,
|
198
203
|
formatter_options,
|
199
|
-
path_or_io
|
200
|
-
|
201
|
-
rescue Exception => e
|
204
|
+
path_or_io
|
205
|
+
rescue Exception => e # rubocop:disable Lint/RescueException
|
202
206
|
raise e, "#{e.message}\nError creating formatter: #{format}", e.backtrace
|
203
207
|
end
|
204
208
|
end
|
@@ -239,26 +243,30 @@ module Cucumber
|
|
239
243
|
@options[:event_bus]
|
240
244
|
end
|
241
245
|
|
246
|
+
def id_generator
|
247
|
+
@id_generator ||= Cucumber::Messages::IdGenerator::UUID.new
|
248
|
+
end
|
249
|
+
|
242
250
|
private
|
243
251
|
|
244
252
|
def default_options
|
245
253
|
{
|
246
|
-
:
|
247
|
-
:
|
248
|
-
:
|
249
|
-
:
|
250
|
-
:
|
251
|
-
:
|
252
|
-
:
|
253
|
-
:
|
254
|
-
:
|
255
|
-
:
|
256
|
-
:
|
257
|
-
:
|
258
|
-
:
|
259
|
-
:
|
260
|
-
:
|
261
|
-
:
|
254
|
+
autoload_code_paths: ['features/support', 'features/step_definitions'],
|
255
|
+
filters: [],
|
256
|
+
strict: Cucumber::Core::Test::Result::StrictConfiguration.new,
|
257
|
+
require: [],
|
258
|
+
dry_run: false,
|
259
|
+
fail_fast: false,
|
260
|
+
formats: [],
|
261
|
+
excludes: [],
|
262
|
+
tag_expressions: [],
|
263
|
+
name_regexps: [],
|
264
|
+
env_vars: {},
|
265
|
+
diff_enabled: true,
|
266
|
+
snippets: true,
|
267
|
+
source: true,
|
268
|
+
duration: true,
|
269
|
+
event_bus: Cucumber::Events.make_event_bus
|
262
270
|
}
|
263
271
|
end
|
264
272
|
|
data/lib/cucumber/constantize.rb
CHANGED
data/lib/cucumber/deprecate.rb
CHANGED
@@ -5,23 +5,47 @@ require 'cucumber/gherkin/formatter/ansi_escapes'
|
|
5
5
|
|
6
6
|
module Cucumber
|
7
7
|
module Deprecate
|
8
|
-
|
9
|
-
|
8
|
+
class AnsiString
|
9
|
+
include Cucumber::Gherkin::Formatter::AnsiEscapes
|
10
|
+
|
11
|
+
def self.failure_message(message)
|
12
|
+
AnsiString.new.failure_message(message)
|
13
|
+
end
|
14
|
+
|
15
|
+
def failure_message(message)
|
16
|
+
failed + message + reset
|
17
|
+
end
|
18
|
+
end
|
10
19
|
|
20
|
+
class CliOption
|
21
|
+
def self.deprecate(stream, option, message, remove_after_version)
|
22
|
+
return if stream.nil?
|
23
|
+
stream.puts(
|
24
|
+
AnsiString.failure_message(
|
25
|
+
"\nWARNING: #{option} is deprecated" \
|
26
|
+
" and will be removed after version #{remove_after_version}.\n#{message}.\n"
|
27
|
+
)
|
28
|
+
)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
module ForUsers
|
11
33
|
def self.call(message, method, remove_after_version)
|
12
|
-
STDERR.puts
|
34
|
+
STDERR.puts AnsiString.failure_message(
|
35
|
+
"\nWARNING: ##{method} is deprecated" \
|
36
|
+
" and will be removed after version #{remove_after_version}. #{message}.\n" \
|
37
|
+
"(Called from #{caller(3..3).first})"
|
38
|
+
)
|
13
39
|
end
|
14
40
|
end
|
15
41
|
|
16
42
|
module ForDevelopers
|
17
43
|
def self.call(_message, _method, remove_after_version)
|
18
|
-
if Cucumber::VERSION > remove_after_version
|
19
|
-
raise "This method is due for removal after version #{remove_after_version}"
|
20
|
-
end
|
44
|
+
raise "This method is due for removal after version #{remove_after_version}" if Cucumber::VERSION > remove_after_version
|
21
45
|
end
|
22
46
|
end
|
23
47
|
|
24
|
-
STRATEGY = $
|
48
|
+
STRATEGY = $PROGRAM_NAME =~ /rspec$/ ? ForDevelopers : ForUsers
|
25
49
|
end
|
26
50
|
|
27
51
|
def self.deprecate(*args)
|
data/lib/cucumber/errors.rb
CHANGED
@@ -6,14 +6,12 @@ module Cucumber
|
|
6
6
|
# Raised when there is no matching StepDefinition for a step.
|
7
7
|
class Undefined < Core::Test::Result::Undefined
|
8
8
|
def self.from(result, step_name)
|
9
|
-
if result.is_a?(self)
|
10
|
-
return result.with_message(with_prefix(result.message))
|
11
|
-
end
|
9
|
+
return result.with_message(with_prefix(result.message)) if result.is_a?(self)
|
12
10
|
|
13
11
|
begin
|
14
|
-
raise
|
15
|
-
rescue =>
|
16
|
-
return
|
12
|
+
raise new(with_prefix(step_name)) # rubocop:disable Style/RaiseArgs
|
13
|
+
rescue StandardError => e
|
14
|
+
return e
|
17
15
|
end
|
18
16
|
end
|
19
17
|
|
@@ -37,7 +35,7 @@ module Cucumber
|
|
37
35
|
# Raised when a step matches 2 or more StepDefinitions
|
38
36
|
class Ambiguous < StandardError
|
39
37
|
def initialize(step_name, step_definitions, used_guess)
|
40
|
-
message = String.new
|
38
|
+
message = String.new # rubocop:disable Style/EmptyLiteral
|
41
39
|
message << "Ambiguous match of \"#{step_name}\":\n\n"
|
42
40
|
message << step_definitions.map(&:backtrace_line).join("\n")
|
43
41
|
message << "\n\n"
|
data/lib/cucumber/events.rb
CHANGED
@@ -24,15 +24,22 @@ module Cucumber
|
|
24
24
|
|
25
25
|
def self.registry
|
26
26
|
Core::Events.build_registry(
|
27
|
-
|
27
|
+
GherkinSourceParsed,
|
28
|
+
GherkinSourceRead,
|
29
|
+
HookTestStepCreated,
|
30
|
+
StepActivated,
|
31
|
+
StepDefinitionRegistered,
|
32
|
+
TestCaseCreated,
|
28
33
|
TestCaseFinished,
|
34
|
+
TestCaseStarted,
|
35
|
+
TestCaseReady,
|
36
|
+
TestRunFinished,
|
37
|
+
TestRunStarted,
|
38
|
+
TestStepCreated,
|
29
39
|
TestStepFinished,
|
30
40
|
TestStepStarted,
|
31
|
-
|
32
|
-
|
33
|
-
TestRunFinished,
|
34
|
-
GherkinSourceRead,
|
35
|
-
TestRunStarted
|
41
|
+
Envelope,
|
42
|
+
UndefinedParameterType
|
36
43
|
)
|
37
44
|
end
|
38
45
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'cucumber/core/events'
|
2
|
+
|
3
|
+
module Cucumber
|
4
|
+
module Events
|
5
|
+
# Fired after we've parsed the contents of a feature file
|
6
|
+
class GherkinSourceParsed < Core::Event.new(:gherkin_document)
|
7
|
+
# The Gherkin Ast
|
8
|
+
attr_reader :gherkin_document
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'cucumber/core/events'
|
4
|
+
|
5
|
+
module Cucumber
|
6
|
+
module Events
|
7
|
+
# Event fired when a step is created from a hook
|
8
|
+
class HookTestStepCreated < Core::Event.new(:test_step, :hook)
|
9
|
+
attr_reader :test_step
|
10
|
+
attr_reader :hook
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'cucumber/core/events'
|
4
|
+
|
5
|
+
module Cucumber
|
6
|
+
module Events
|
7
|
+
# Event fired when a Test::Case is created from a Pickle
|
8
|
+
class TestCaseCreated < Core::Event.new(:test_case, :pickle)
|
9
|
+
attr_reader :test_case
|
10
|
+
attr_reader :pickle
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'cucumber/core/events'
|
4
|
+
|
5
|
+
module Cucumber
|
6
|
+
module Events
|
7
|
+
# Event fired when a Test::Case is ready to be ran (matching has been done, hooks added etc)
|
8
|
+
class TestCaseReady < Core::Event.new(:test_case)
|
9
|
+
attr_reader :test_case
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'cucumber/core/events'
|
4
|
+
|
5
|
+
module Cucumber
|
6
|
+
module Events
|
7
|
+
# Event fired when a TestStep is created from a PickleStep
|
8
|
+
class TestStepCreated < Core::Event.new(:test_step, :pickle_step)
|
9
|
+
attr_reader :test_step
|
10
|
+
attr_reader :pickle_step
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/cucumber/file_specs.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'cucumber'
|
4
|
-
require 'cucumber/core/
|
4
|
+
require 'cucumber/core/test/location'
|
5
5
|
|
6
6
|
module Cucumber
|
7
7
|
class FileSpecs
|
@@ -9,7 +9,7 @@ module Cucumber
|
|
9
9
|
|
10
10
|
def initialize(file_specs)
|
11
11
|
Cucumber.logger.debug("Features:\n")
|
12
|
-
@file_specs = file_specs.map { |
|
12
|
+
@file_specs = file_specs.map { |spec| FileSpec.new(spec) }
|
13
13
|
Cucumber.logger.debug("\n")
|
14
14
|
end
|
15
15
|
|
@@ -22,8 +22,8 @@ module Cucumber
|
|
22
22
|
end
|
23
23
|
|
24
24
|
class FileSpec
|
25
|
-
def initialize(
|
26
|
-
@file, @lines = *FILE_COLON_LINE_PATTERN.match(
|
25
|
+
def initialize(spec)
|
26
|
+
@file, @lines = *FILE_COLON_LINE_PATTERN.match(spec).captures
|
27
27
|
Cucumber.logger.debug(" * #{@file}\n")
|
28
28
|
@lines = String(@lines).split(':').map { |line| Integer(line) }
|
29
29
|
end
|
@@ -31,8 +31,8 @@ module Cucumber
|
|
31
31
|
attr_reader :file
|
32
32
|
|
33
33
|
def locations
|
34
|
-
return [Core::
|
35
|
-
@lines.map { |line| Core::
|
34
|
+
return [Core::Test::Location.new(@file)] if @lines.empty?
|
35
|
+
@lines.map { |line| Core::Test::Location.new(@file, line) }
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
data/lib/cucumber/filters.rb
CHANGED
@@ -26,7 +26,7 @@ module Cucumber
|
|
26
26
|
private
|
27
27
|
|
28
28
|
def new_test_steps
|
29
|
-
@original_test_case.test_steps.map(&
|
29
|
+
@original_test_case.test_steps.map(&method(:attempt_to_activate))
|
30
30
|
end
|
31
31
|
|
32
32
|
def attempt_to_activate(test_step)
|
@@ -39,12 +39,14 @@ module Cucumber
|
|
39
39
|
|
40
40
|
class FindMatch
|
41
41
|
def initialize(step_match_search, configuration, test_step)
|
42
|
-
@step_match_search
|
42
|
+
@step_match_search = step_match_search
|
43
|
+
@configuration = configuration
|
44
|
+
@test_step = test_step
|
43
45
|
end
|
44
46
|
|
45
47
|
def result
|
46
48
|
begin
|
47
|
-
return NoStepMatch.new(test_step
|
49
|
+
return NoStepMatch.new(test_step, test_step.text) unless matches.any?
|
48
50
|
rescue Cucumber::Ambiguous => e
|
49
51
|
return AmbiguousStepMatch.new(e)
|
50
52
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cucumber
|
4
|
+
module Filters
|
5
|
+
class BroadcastTestCaseReadyEvent < Core::Filter.new(:config)
|
6
|
+
def test_case(test_case)
|
7
|
+
config.notify :test_case_ready, test_case
|
8
|
+
test_case.describe_to(receiver)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'cucumber/core/filter'
|
4
|
-
require 'cucumber/core/
|
4
|
+
require 'cucumber/core/test/location'
|
5
5
|
require 'cucumber/running_test_case'
|
6
6
|
|
7
7
|
module Cucumber
|
@@ -13,23 +13,19 @@ module Cucumber
|
|
13
13
|
|
14
14
|
class CaseFilter
|
15
15
|
def initialize(runtime, original_test_case)
|
16
|
-
@runtime
|
16
|
+
@runtime = runtime
|
17
|
+
@original_test_case = original_test_case
|
17
18
|
end
|
18
19
|
|
19
20
|
def test_case
|
20
|
-
init_scenario = Cucumber::Hooks.around_hook
|
21
|
+
init_scenario = Cucumber::Hooks.around_hook do |continue|
|
21
22
|
@runtime.begin_scenario(scenario)
|
22
23
|
continue.call
|
23
24
|
@runtime.end_scenario(scenario)
|
24
25
|
end
|
25
26
|
around_hooks = [init_scenario] + @original_test_case.around_hooks
|
26
27
|
|
27
|
-
|
28
|
-
empty_hook_location = Cucumber::Core::Ast::Location.from_source_location(*empty_hook.source_location)
|
29
|
-
default_hook = Cucumber::Hooks.before_hook(@original_test_case.source, empty_hook_location, &empty_hook)
|
30
|
-
steps = [default_hook] + @original_test_case.test_steps
|
31
|
-
|
32
|
-
@original_test_case.with_around_hooks(around_hooks).with_steps(steps)
|
28
|
+
@original_test_case.with_around_hooks(around_hooks).with_steps(@original_test_case.test_steps)
|
33
29
|
end
|
34
30
|
|
35
31
|
private
|