cucumber-core 1.1.3 → 1.2.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 +4 -4
- data/HISTORY.md +16 -2
- data/lib/cucumber/core/ast/background.rb +6 -7
- data/lib/cucumber/core/ast/comment.rb +1 -1
- data/lib/cucumber/core/ast/doc_string.rb +0 -1
- data/lib/cucumber/core/ast/examples_table.rb +12 -9
- data/lib/cucumber/core/ast/feature.rb +3 -4
- data/lib/cucumber/core/ast/names.rb +4 -8
- data/lib/cucumber/core/ast/outline_step.rb +4 -4
- data/lib/cucumber/core/ast/scenario.rb +4 -4
- data/lib/cucumber/core/ast/scenario_outline.rb +4 -5
- data/lib/cucumber/core/ast/step.rb +5 -5
- data/lib/cucumber/core/gherkin/ast_builder.rb +12 -2
- data/lib/cucumber/core/test/action.rb +9 -2
- data/lib/cucumber/core/test/result.rb +65 -13
- data/lib/cucumber/core/test/runner.rb +2 -0
- data/lib/cucumber/core/test/step.rb +7 -3
- data/lib/cucumber/core/version.rb +1 -1
- data/spec/cucumber/core/ast/examples_table_spec.rb +26 -13
- data/spec/cucumber/core/ast/outline_step_spec.rb +13 -6
- data/spec/cucumber/core/ast/step_spec.rb +28 -15
- data/spec/cucumber/core/test/action_spec.rb +30 -1
- data/spec/cucumber/core/test/result_spec.rb +155 -25
- data/spec/cucumber/core/test/runner_spec.rb +54 -11
- data/spec/cucumber/core/test/step_spec.rb +17 -2
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53a124c933b4697ed6128b46c307617ea4399559
|
4
|
+
data.tar.gz: e80a381d06f95b5416035f91a004d00cbd68057e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b1e3a4359e8ccaeef234bfa1492e678145bf1f07320ffbf1e01814b2efd405da9ae10abb31347ac10642e49935183032b1f7a094631219c48d7a4b984c5e6cf
|
7
|
+
data.tar.gz: e7d0c05ae5e57937e6858c91485157175e69d32332457db403a69d1e8b44e9a99bf95cc68e2bdb1b265ad5decaa69086fbca3a0d48e6cf97ca6cf64b4b54e855
|
data/HISTORY.md
CHANGED
@@ -1,6 +1,20 @@
|
|
1
|
-
## [In Git](https://github.com/cucumber/cucumber-ruby-core/compare/v1.
|
1
|
+
## [In Git](https://github.com/cucumber/cucumber-ruby-core/compare/v1.2.0...master)
|
2
2
|
|
3
|
-
|
3
|
+
...
|
4
|
+
|
5
|
+
## [v1.2.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.3...v1.2.0)
|
6
|
+
|
7
|
+
### New Features
|
8
|
+
|
9
|
+
* Enable the location of actions to be the step or hook location (@brasmusson)
|
10
|
+
* Add the comments to the Steps, Examples tables and Examples table rows Ast classes (@brasmusson)
|
11
|
+
* Expose name, description and examples_rows attributes of `Ast::ExamplesTable` (@mattwynne)
|
12
|
+
* Add #to_sym to Cucumber::Core::Test::Result classes ([#89](https://github.com/cucumber/cucumber-ruby-core/pull/89) @pdswan)
|
13
|
+
* Add #ok? to Cucumber::Core::Test::Result classes ([#92](https://github.com/cucumber/cucumber-ruby-core/pull/92) @brasmusson)
|
14
|
+
|
15
|
+
### Bugfixes
|
16
|
+
|
17
|
+
## [v1.1.3](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.2...v1.1.3)
|
4
18
|
|
5
19
|
### New Features
|
6
20
|
|
@@ -10,23 +10,22 @@ module Cucumber
|
|
10
10
|
include HasLocation
|
11
11
|
include DescribesItself
|
12
12
|
|
13
|
-
def initialize(gherkin_statement, language, location, comments, keyword,
|
13
|
+
def initialize(gherkin_statement, language, location, comments, keyword, name, description, raw_steps)
|
14
14
|
@gherkin_statement = gherkin_statement
|
15
15
|
@language = language
|
16
16
|
@location = location
|
17
17
|
@comments = comments
|
18
18
|
@keyword = keyword
|
19
|
-
@
|
19
|
+
@name = name
|
20
20
|
@description = description
|
21
21
|
@raw_steps = raw_steps
|
22
22
|
end
|
23
23
|
|
24
|
-
attr_reader :language, :
|
25
|
-
private :language, :
|
24
|
+
attr_reader :language, :description, :raw_steps
|
25
|
+
private :language, :raw_steps
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
attr_reader :gherkin_statement
|
27
|
+
attr_reader :comments, :keyword, :location
|
28
|
+
attr_reader :gherkin_statement
|
30
29
|
|
31
30
|
def children
|
32
31
|
raw_steps
|
@@ -11,21 +11,20 @@ module Cucumber
|
|
11
11
|
include HasLocation
|
12
12
|
include DescribesItself
|
13
13
|
|
14
|
-
def initialize(gherkin_statement, location, comments, tags, keyword,
|
14
|
+
def initialize(gherkin_statement, location, comments, tags, keyword, name, description, header, example_rows)
|
15
15
|
@gherkin_statement = gherkin_statement
|
16
16
|
@location = location
|
17
17
|
@comments = comments
|
18
18
|
@tags = tags
|
19
19
|
@keyword = keyword
|
20
|
-
@
|
20
|
+
@name = name
|
21
21
|
@description = description
|
22
22
|
@header = header
|
23
23
|
@example_rows = example_rows
|
24
24
|
end
|
25
25
|
|
26
26
|
attr_reader :gherkin_statement, :location, :comments, :tags, :keyword,
|
27
|
-
:
|
28
|
-
private :title, :description, :example_rows
|
27
|
+
:header, :example_rows
|
29
28
|
|
30
29
|
private
|
31
30
|
|
@@ -40,17 +39,20 @@ module Cucumber
|
|
40
39
|
class Header
|
41
40
|
include HasLocation
|
42
41
|
|
43
|
-
|
42
|
+
attr_reader :comments
|
43
|
+
|
44
|
+
def initialize(cells, location, comments)
|
44
45
|
@cells = cells
|
45
46
|
@location = location
|
47
|
+
@comments = comments
|
46
48
|
end
|
47
49
|
|
48
50
|
def values
|
49
51
|
@cells
|
50
52
|
end
|
51
53
|
|
52
|
-
def build_row(row_cells, number, location, language)
|
53
|
-
Row.new(Hash[@cells.zip(row_cells)], number, location, language)
|
54
|
+
def build_row(row_cells, number, location, language, comments)
|
55
|
+
Row.new(Hash[@cells.zip(row_cells)], number, location, language, comments)
|
54
56
|
end
|
55
57
|
|
56
58
|
def inspect
|
@@ -62,14 +64,15 @@ module Cucumber
|
|
62
64
|
include DescribesItself
|
63
65
|
include HasLocation
|
64
66
|
|
65
|
-
attr_reader :number, :language
|
67
|
+
attr_reader :number, :language, :comments
|
66
68
|
|
67
|
-
def initialize(data, number, location, language)
|
69
|
+
def initialize(data, number, location, language, comments)
|
68
70
|
raise ArgumentError, data.to_s unless data.is_a?(Hash)
|
69
71
|
@data = data
|
70
72
|
@number = number
|
71
73
|
@location = location
|
72
74
|
@language = language
|
75
|
+
@comments = comments
|
73
76
|
end
|
74
77
|
|
75
78
|
def ==(other)
|
@@ -12,11 +12,10 @@ module Cucumber
|
|
12
12
|
include DescribesItself
|
13
13
|
|
14
14
|
attr_reader :gherkin_statement, :language, :location, :background,
|
15
|
-
:comments, :tags, :keyword, :
|
15
|
+
:comments, :tags, :keyword, :description,
|
16
16
|
:feature_elements
|
17
|
-
private :description
|
18
17
|
|
19
|
-
def initialize(gherkin_statement, language, location, background, comments, tags, keyword,
|
18
|
+
def initialize(gherkin_statement, language, location, background, comments, tags, keyword, name, description, feature_elements)
|
20
19
|
@gherkin_statement = gherkin_statement
|
21
20
|
@language = language
|
22
21
|
@location = location
|
@@ -24,7 +23,7 @@ module Cucumber
|
|
24
23
|
@comments = comments
|
25
24
|
@tags = tags
|
26
25
|
@keyword = keyword
|
27
|
-
@
|
26
|
+
@name = name
|
28
27
|
@description = description
|
29
28
|
@feature_elements = feature_elements
|
30
29
|
end
|
@@ -2,25 +2,21 @@ module Cucumber
|
|
2
2
|
module Core
|
3
3
|
module Ast
|
4
4
|
module Names
|
5
|
-
attr_reader :description
|
6
|
-
|
7
|
-
def name
|
8
|
-
title
|
9
|
-
end
|
5
|
+
attr_reader :description, :name
|
10
6
|
|
11
7
|
def title
|
12
8
|
warn("deprecated. Use #name")
|
13
|
-
|
9
|
+
name
|
14
10
|
end
|
15
11
|
|
16
12
|
def legacy_conflated_name_and_description
|
17
|
-
s =
|
13
|
+
s = name
|
18
14
|
s += "\n#{@description}" if @description != ""
|
19
15
|
s
|
20
16
|
end
|
21
17
|
|
22
18
|
def to_s
|
23
|
-
|
19
|
+
name
|
24
20
|
end
|
25
21
|
|
26
22
|
def inspect
|
@@ -10,15 +10,15 @@ module Cucumber
|
|
10
10
|
include HasLocation
|
11
11
|
include DescribesItself
|
12
12
|
|
13
|
-
attr_reader :gherkin_statement, :language, :location, :keyword, :name, :multiline_arg
|
13
|
+
attr_reader :gherkin_statement, :language, :location, :comments, :keyword, :name, :multiline_arg
|
14
14
|
|
15
|
-
def initialize(gherkin_statement, language, location, keyword, name, multiline_arg)
|
16
|
-
@gherkin_statement, @language, @location, @keyword, @name, @multiline_arg = gherkin_statement, language, location, keyword, name, multiline_arg
|
15
|
+
def initialize(gherkin_statement, language, location, comments, keyword, name, multiline_arg)
|
16
|
+
@gherkin_statement, @language, @location, @comments, @keyword, @name, @multiline_arg = gherkin_statement, language, location, comments, keyword, name, multiline_arg
|
17
17
|
@language || raise("Language is required!")
|
18
18
|
end
|
19
19
|
|
20
20
|
def to_step(row)
|
21
|
-
Ast::ExpandedOutlineStep.new(self, gherkin_statement, language, row.location, keyword, row.expand(name), replace_multiline_arg(row))
|
21
|
+
Ast::ExpandedOutlineStep.new(self, gherkin_statement, language, row.location, comments, keyword, row.expand(name), replace_multiline_arg(row))
|
22
22
|
end
|
23
23
|
|
24
24
|
def inspect
|
@@ -12,11 +12,11 @@ module Cucumber
|
|
12
12
|
include DescribesItself
|
13
13
|
|
14
14
|
attr_reader :gherkin_statement, :language, :location, :background,
|
15
|
-
:comments, :tags, :feature_tags, :keyword,
|
15
|
+
:comments, :tags, :feature_tags, :keyword,
|
16
16
|
:description, :raw_steps
|
17
|
-
private :raw_steps
|
17
|
+
private :raw_steps
|
18
18
|
|
19
|
-
def initialize(gherkin_statement, language, location, background, comments, tags, feature_tags, keyword,
|
19
|
+
def initialize(gherkin_statement, language, location, background, comments, tags, feature_tags, keyword, name, description, raw_steps)
|
20
20
|
@gherkin_statement = gherkin_statement
|
21
21
|
@language = language
|
22
22
|
@location = location
|
@@ -25,7 +25,7 @@ module Cucumber
|
|
25
25
|
@tags = tags
|
26
26
|
@feature_tags = feature_tags
|
27
27
|
@keyword = keyword
|
28
|
-
@
|
28
|
+
@name = name
|
29
29
|
@description = description
|
30
30
|
@raw_steps = raw_steps
|
31
31
|
end
|
@@ -14,12 +14,11 @@ module Cucumber
|
|
14
14
|
MissingExamples = Class.new(StandardError)
|
15
15
|
|
16
16
|
attr_reader :gherkin_statement, :language, :background, :comments,
|
17
|
-
:tags, :feature_tags, :keyword,
|
17
|
+
:tags, :feature_tags, :keyword,
|
18
18
|
:steps, :examples_tables, :line
|
19
|
-
private :language, :background, :
|
20
|
-
:line
|
19
|
+
private :language, :background, :feature_tags, :line
|
21
20
|
|
22
|
-
def initialize(gherkin_statement, language, location, background, comments, tags, feature_tags, keyword,
|
21
|
+
def initialize(gherkin_statement, language, location, background, comments, tags, feature_tags, keyword, name, description, steps, examples_tables)
|
23
22
|
@gherkin_statement = gherkin_statement
|
24
23
|
@language = language
|
25
24
|
@location = location
|
@@ -28,7 +27,7 @@ module Cucumber
|
|
28
27
|
@tags = tags
|
29
28
|
@feature_tags = feature_tags
|
30
29
|
@keyword = keyword
|
31
|
-
@
|
30
|
+
@name = name
|
32
31
|
@description = description
|
33
32
|
@steps = steps
|
34
33
|
@examples_tables = examples_tables
|
@@ -8,10 +8,10 @@ module Cucumber
|
|
8
8
|
include HasLocation
|
9
9
|
include DescribesItself
|
10
10
|
|
11
|
-
attr_reader :keyword, :name, :language, :exception, :multiline_arg, :gherkin_statement
|
11
|
+
attr_reader :keyword, :name, :language, :comments, :exception, :multiline_arg, :gherkin_statement
|
12
12
|
|
13
|
-
def initialize(gherkin_statement, language, location, keyword, name, multiline_arg)
|
14
|
-
@gherkin_statement, @language, @location, @keyword, @name, @multiline_arg = gherkin_statement, language, location, keyword, name, multiline_arg
|
13
|
+
def initialize(gherkin_statement, language, location, comments, keyword, name, multiline_arg)
|
14
|
+
@gherkin_statement, @language, @location, @comments, @keyword, @name, @multiline_arg = gherkin_statement, language, location, comments, keyword, name, multiline_arg
|
15
15
|
end
|
16
16
|
|
17
17
|
def to_sexp
|
@@ -52,8 +52,8 @@ module Cucumber
|
|
52
52
|
|
53
53
|
class ExpandedOutlineStep < Step
|
54
54
|
|
55
|
-
def initialize(outline_step, gherkin_statement, language, location, keyword, name, multiline_arg)
|
56
|
-
@outline_step, @gherkin_statement, @language, @location, @keyword, @name, @multiline_arg = outline_step, gherkin_statement, language, location, keyword, name, multiline_arg
|
55
|
+
def initialize(outline_step, gherkin_statement, language, location, comments, keyword, name, multiline_arg)
|
56
|
+
@outline_step, @gherkin_statement, @language, @location, @comments, @keyword, @name, @multiline_arg = outline_step, gherkin_statement, language, location, comments, keyword, name, multiline_arg
|
57
57
|
end
|
58
58
|
|
59
59
|
alias :self_match_locations? :match_locations?
|
@@ -215,6 +215,7 @@ module Cucumber
|
|
215
215
|
node,
|
216
216
|
language,
|
217
217
|
location,
|
218
|
+
comments,
|
218
219
|
node.keyword,
|
219
220
|
node.name,
|
220
221
|
|
@@ -289,16 +290,24 @@ module Cucumber
|
|
289
290
|
|
290
291
|
def header
|
291
292
|
row = node.rows[0]
|
292
|
-
Ast::ExamplesTable::Header.new(row.cells, location)
|
293
|
+
Ast::ExamplesTable::Header.new(row.cells, location, row_comments(row))
|
293
294
|
end
|
294
295
|
|
295
296
|
def example_rows(language)
|
296
297
|
_, *raw_examples = *node.rows
|
297
298
|
raw_examples.each_with_index.map do |row, index|
|
298
|
-
header.build_row(row.cells, index + 1, location.on_line(row.line), language)
|
299
|
+
header.build_row(row.cells, index + 1, location.on_line(row.line), language, row_comments(row))
|
299
300
|
end
|
300
301
|
end
|
301
302
|
|
303
|
+
def row_comments(row)
|
304
|
+
row.comments.map do |comment|
|
305
|
+
Ast::Comment.new(
|
306
|
+
Ast::Location.new(file, comment.line),
|
307
|
+
comment.value
|
308
|
+
)
|
309
|
+
end
|
310
|
+
end
|
302
311
|
end
|
303
312
|
|
304
313
|
class StepBuilder < Builder
|
@@ -307,6 +316,7 @@ module Cucumber
|
|
307
316
|
node,
|
308
317
|
language,
|
309
318
|
location,
|
319
|
+
comments,
|
310
320
|
node.keyword,
|
311
321
|
node.name,
|
312
322
|
MultilineArgument.from(node.doc_string || node.rows, location)
|
@@ -7,8 +7,9 @@ module Cucumber
|
|
7
7
|
module Core
|
8
8
|
module Test
|
9
9
|
class Action
|
10
|
-
def initialize(&block)
|
10
|
+
def initialize(location = nil, &block)
|
11
11
|
raise ArgumentError, "Passing a block to execute the action is mandatory." unless block
|
12
|
+
@location = location ? location : Ast::Location.new(*block.source_location)
|
12
13
|
@block = block
|
13
14
|
@timer = Timer.new
|
14
15
|
end
|
@@ -28,7 +29,7 @@ module Cucumber
|
|
28
29
|
end
|
29
30
|
|
30
31
|
def location
|
31
|
-
|
32
|
+
@location
|
32
33
|
end
|
33
34
|
|
34
35
|
def inspect
|
@@ -57,6 +58,12 @@ module Cucumber
|
|
57
58
|
end
|
58
59
|
|
59
60
|
class UndefinedAction
|
61
|
+
attr_reader :location
|
62
|
+
|
63
|
+
def initialize(source_location)
|
64
|
+
@location = source_location
|
65
|
+
end
|
66
|
+
|
60
67
|
def execute(*)
|
61
68
|
undefined
|
62
69
|
end
|
@@ -5,13 +5,19 @@ module Cucumber
|
|
5
5
|
module Test
|
6
6
|
module Result
|
7
7
|
|
8
|
+
# Defines to_sym on a result class for the given result type
|
9
|
+
#
|
8
10
|
# Defines predicate methods on a result class with only the given one
|
9
11
|
# returning true
|
10
|
-
def self.
|
12
|
+
def self.query_methods(result_type)
|
11
13
|
Module.new do
|
12
|
-
|
13
|
-
|
14
|
-
|
14
|
+
define_method :to_sym do
|
15
|
+
result_type
|
16
|
+
end
|
17
|
+
|
18
|
+
[:passed, :failed, :undefined, :unknown, :skipped, :pending].each do |possible_result_type|
|
19
|
+
define_method("#{possible_result_type}?") do
|
20
|
+
possible_result_type == to_sym
|
15
21
|
end
|
16
22
|
end
|
17
23
|
end
|
@@ -19,7 +25,7 @@ module Cucumber
|
|
19
25
|
|
20
26
|
# Null object for results. Represents the state where we haven't run anything yet
|
21
27
|
class Unknown
|
22
|
-
include Result.
|
28
|
+
include Result.query_methods :unknown
|
23
29
|
|
24
30
|
def describe_to(visitor, *args)
|
25
31
|
self
|
@@ -27,7 +33,7 @@ module Cucumber
|
|
27
33
|
end
|
28
34
|
|
29
35
|
class Passed
|
30
|
-
include Result.
|
36
|
+
include Result.query_methods :passed
|
31
37
|
attr_accessor :duration
|
32
38
|
|
33
39
|
def initialize(duration)
|
@@ -44,14 +50,26 @@ module Cucumber
|
|
44
50
|
def to_s
|
45
51
|
"✓"
|
46
52
|
end
|
53
|
+
|
54
|
+
def ok?(be_strict = false)
|
55
|
+
true
|
56
|
+
end
|
57
|
+
|
58
|
+
def with_appended_backtrace(step)
|
59
|
+
self
|
60
|
+
end
|
61
|
+
|
62
|
+
def with_filtered_backtrace(filter)
|
63
|
+
self
|
64
|
+
end
|
47
65
|
end
|
48
66
|
|
49
67
|
class Failed
|
50
|
-
include Result.
|
68
|
+
include Result.query_methods :failed
|
51
69
|
attr_reader :duration, :exception
|
52
70
|
|
53
71
|
def initialize(duration, exception)
|
54
|
-
raise ArgumentError unless duration
|
72
|
+
raise ArgumentError unless duration
|
55
73
|
raise ArgumentError unless exception
|
56
74
|
@duration = duration
|
57
75
|
@exception = exception
|
@@ -68,13 +86,25 @@ module Cucumber
|
|
68
86
|
"✗"
|
69
87
|
end
|
70
88
|
|
89
|
+
def ok?(be_strict = false)
|
90
|
+
false
|
91
|
+
end
|
92
|
+
|
71
93
|
def with_duration(new_duration)
|
72
94
|
self.class.new(new_duration, exception)
|
73
95
|
end
|
74
96
|
|
97
|
+
def with_appended_backtrace(step)
|
98
|
+
exception.backtrace << step.backtrace_line if step.respond_to?(:backtrace_line)
|
99
|
+
self
|
100
|
+
end
|
101
|
+
|
102
|
+
def with_filtered_backtrace(filter)
|
103
|
+
self.class.new(duration, filter.new(exception.dup).exception)
|
104
|
+
end
|
75
105
|
end
|
76
106
|
|
77
|
-
# Base class for exceptions that can be raised in a step defintion causing
|
107
|
+
# Base class for exceptions that can be raised in a step defintion causing
|
78
108
|
# the step to have that result.
|
79
109
|
class Raisable < StandardError
|
80
110
|
attr_reader :message, :duration
|
@@ -92,10 +122,22 @@ module Cucumber
|
|
92
122
|
def with_duration(new_duration)
|
93
123
|
self.class.new(message, new_duration, backtrace)
|
94
124
|
end
|
125
|
+
|
126
|
+
def with_appended_backtrace(step)
|
127
|
+
return self unless step.respond_to?(:backtrace_line)
|
128
|
+
set_backtrace([]) unless backtrace
|
129
|
+
backtrace << step.backtrace_line
|
130
|
+
self
|
131
|
+
end
|
132
|
+
|
133
|
+
def with_filtered_backtrace(filter)
|
134
|
+
return self unless backtrace
|
135
|
+
filter.new(dup).exception
|
136
|
+
end
|
95
137
|
end
|
96
138
|
|
97
139
|
class Undefined < Raisable
|
98
|
-
include Result.
|
140
|
+
include Result.query_methods :undefined
|
99
141
|
|
100
142
|
def describe_to(visitor, *args)
|
101
143
|
visitor.undefined(*args)
|
@@ -107,10 +149,13 @@ module Cucumber
|
|
107
149
|
"?"
|
108
150
|
end
|
109
151
|
|
152
|
+
def ok?(be_strict = false)
|
153
|
+
!be_strict
|
154
|
+
end
|
110
155
|
end
|
111
156
|
|
112
157
|
class Skipped < Raisable
|
113
|
-
include Result.
|
158
|
+
include Result.query_methods :skipped
|
114
159
|
|
115
160
|
def describe_to(visitor, *args)
|
116
161
|
visitor.skipped(*args)
|
@@ -122,10 +167,13 @@ module Cucumber
|
|
122
167
|
"-"
|
123
168
|
end
|
124
169
|
|
170
|
+
def ok?(be_strict = false)
|
171
|
+
true
|
172
|
+
end
|
125
173
|
end
|
126
174
|
|
127
175
|
class Pending < Raisable
|
128
|
-
include Result.
|
176
|
+
include Result.query_methods :pending
|
129
177
|
|
130
178
|
def describe_to(visitor, *args)
|
131
179
|
visitor.pending(self, *args)
|
@@ -136,13 +184,17 @@ module Cucumber
|
|
136
184
|
def to_s
|
137
185
|
"P"
|
138
186
|
end
|
187
|
+
|
188
|
+
def ok?(be_strict = false)
|
189
|
+
!be_strict
|
190
|
+
end
|
139
191
|
end
|
140
192
|
|
141
193
|
#
|
142
194
|
# An object that responds to the description protocol from the results
|
143
195
|
# and collects summary information.
|
144
196
|
#
|
145
|
-
# e.g.
|
197
|
+
# e.g.
|
146
198
|
# summary = Result::Summary.new
|
147
199
|
# Result::Passed.new(0).describe_to(summary)
|
148
200
|
# puts summary.total_passed
|