cuke_modeler 2.1.0 → 3.4.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/CHANGELOG.md +53 -1
- data/README.md +14 -16
- data/cuke_modeler.gemspec +33 -21
- data/lib/cuke_modeler.rb +2 -1
- data/lib/cuke_modeler/adapters/gherkin_10_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_11_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_12_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_13_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_14_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_15_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_9_adapter.rb +356 -4
- data/lib/cuke_modeler/containing.rb +41 -89
- data/lib/cuke_modeler/described.rb +40 -1
- data/lib/cuke_modeler/models/background.rb +12 -12
- data/lib/cuke_modeler/models/cell.rb +14 -8
- data/lib/cuke_modeler/models/comment.rb +6 -6
- data/lib/cuke_modeler/models/directory.rb +14 -18
- data/lib/cuke_modeler/models/doc_string.rb +11 -8
- data/lib/cuke_modeler/models/example.rb +64 -46
- data/lib/cuke_modeler/models/feature.rb +38 -20
- data/lib/cuke_modeler/models/feature_file.rb +6 -8
- data/lib/cuke_modeler/models/model.rb +2 -1
- data/lib/cuke_modeler/models/outline.rb +20 -15
- data/lib/cuke_modeler/models/row.rb +11 -8
- data/lib/cuke_modeler/models/rule.rb +101 -0
- data/lib/cuke_modeler/models/scenario.rb +18 -13
- data/lib/cuke_modeler/models/step.rb +41 -19
- data/lib/cuke_modeler/models/table.rb +10 -7
- data/lib/cuke_modeler/models/tag.rb +10 -6
- data/lib/cuke_modeler/named.rb +5 -1
- data/lib/cuke_modeler/nested.rb +22 -18
- data/lib/cuke_modeler/parsed.rb +8 -0
- data/lib/cuke_modeler/parsing.rb +55 -74
- data/lib/cuke_modeler/sourceable.rb +8 -0
- data/lib/cuke_modeler/stepped.rb +8 -0
- data/lib/cuke_modeler/taggable.rb +9 -1
- data/lib/cuke_modeler/version.rb +1 -1
- data/testing/cucumber/features/modeling/feature_modeling.feature +28 -7
- data/testing/cucumber/features/modeling/feature_output.feature +45 -23
- data/testing/cucumber/features/modeling/rule_modeling.feature +108 -0
- data/testing/cucumber/features/modeling/rule_output.feature +111 -0
- metadata +68 -161
- data/.gitignore +0 -18
- data/.simplecov +0 -7
- data/.travis.yml +0 -81
- data/Gemfile +0 -44
- data/Rakefile +0 -73
- data/appveyor.yml +0 -88
- data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +0 -274
- data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +0 -297
- data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +0 -309
- data/lib/cuke_modeler/adapters/gherkin_5_adapter.rb +0 -12
- data/lib/cuke_modeler/adapters/gherkin_6_adapter.rb +0 -310
- data/lib/cuke_modeler/adapters/gherkin_7_adapter.rb +0 -307
- data/lib/cuke_modeler/adapters/gherkin_8_adapter.rb +0 -12
- data/testing/cucumber/step_definitions/action_steps.rb +0 -13
- data/testing/cucumber/step_definitions/background_steps.rb +0 -1
- data/testing/cucumber/step_definitions/directory_steps.rb +0 -6
- data/testing/cucumber/step_definitions/doc_string_steps.rb +0 -1
- data/testing/cucumber/step_definitions/feature_file_steps.rb +0 -16
- data/testing/cucumber/step_definitions/feature_steps.rb +0 -7
- data/testing/cucumber/step_definitions/modeling_steps.rb +0 -49
- data/testing/cucumber/step_definitions/setup_steps.rb +0 -32
- data/testing/cucumber/step_definitions/step_steps.rb +0 -3
- data/testing/cucumber/step_definitions/table_steps.rb +0 -1
- data/testing/cucumber/step_definitions/tag_steps.rb +0 -3
- data/testing/cucumber/step_definitions/verification_steps.rb +0 -181
- data/testing/cucumber/support/env.rb +0 -30
- data/testing/dialect_helper.rb +0 -48
- data/testing/file_helper.rb +0 -47
- data/testing/gemfiles/gherkin2.gemfile +0 -33
- data/testing/gemfiles/gherkin3.gemfile +0 -26
- data/testing/gemfiles/gherkin4.gemfile +0 -27
- data/testing/gemfiles/gherkin5.gemfile +0 -27
- data/testing/gemfiles/gherkin6.gemfile +0 -10
- data/testing/gemfiles/gherkin7.gemfile +0 -9
- data/testing/gemfiles/gherkin8.gemfile +0 -9
- data/testing/gemfiles/gherkin9.gemfile +0 -9
- data/testing/helper_methods.rb +0 -23
- data/testing/rspec/spec/integration/adapters/gherkin_2_adapter_spec.rb +0 -166
- data/testing/rspec/spec/integration/adapters/gherkin_3_adapter_spec.rb +0 -166
- data/testing/rspec/spec/integration/adapters/gherkin_4_adapter_spec.rb +0 -165
- data/testing/rspec/spec/integration/adapters/gherkin_5_adapter_spec.rb +0 -165
- data/testing/rspec/spec/integration/adapters/gherkin_6_adapter_spec.rb +0 -159
- data/testing/rspec/spec/integration/adapters/gherkin_7_adapter_spec.rb +0 -162
- data/testing/rspec/spec/integration/adapters/gherkin_8_adapter_spec.rb +0 -162
- data/testing/rspec/spec/integration/adapters/gherkin_9_adapter_spec.rb +0 -162
- data/testing/rspec/spec/integration/models/background_integration_spec.rb +0 -438
- data/testing/rspec/spec/integration/models/cell_integration_spec.rb +0 -338
- data/testing/rspec/spec/integration/models/comment_integration_spec.rb +0 -180
- data/testing/rspec/spec/integration/models/directory_integration_spec.rb +0 -218
- data/testing/rspec/spec/integration/models/doc_string_integration_spec.rb +0 -398
- data/testing/rspec/spec/integration/models/example_integration_spec.rb +0 -753
- data/testing/rspec/spec/integration/models/feature_file_integration_spec.rb +0 -276
- data/testing/rspec/spec/integration/models/feature_integration_spec.rb +0 -655
- data/testing/rspec/spec/integration/models/model_integration_spec.rb +0 -15
- data/testing/rspec/spec/integration/models/outline_integration_spec.rb +0 -619
- data/testing/rspec/spec/integration/models/row_integration_spec.rb +0 -303
- data/testing/rspec/spec/integration/models/scenario_integration_spec.rb +0 -475
- data/testing/rspec/spec/integration/models/step_integration_spec.rb +0 -573
- data/testing/rspec/spec/integration/models/table_integration_spec.rb +0 -333
- data/testing/rspec/spec/integration/models/tag_integration_spec.rb +0 -271
- data/testing/rspec/spec/integration/nested_integration_spec.rb +0 -91
- data/testing/rspec/spec/integration/parsing_integration_spec.rb +0 -143
- data/testing/rspec/spec/integration/shared/models_integration_specs.rb +0 -18
- data/testing/rspec/spec/spec_helper.rb +0 -129
- data/testing/rspec/spec/unit/cuke_modeler_unit_spec.rb +0 -25
- data/testing/rspec/spec/unit/described_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/models/background_unit_spec.rb +0 -83
- data/testing/rspec/spec/unit/models/cell_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/models/comment_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/models/directory_unit_spec.rb +0 -127
- data/testing/rspec/spec/unit/models/doc_string_unit_spec.rb +0 -100
- data/testing/rspec/spec/unit/models/example_unit_spec.rb +0 -133
- data/testing/rspec/spec/unit/models/feature_file_unit_spec.rb +0 -125
- data/testing/rspec/spec/unit/models/feature_unit_spec.rb +0 -157
- data/testing/rspec/spec/unit/models/model_unit_spec.rb +0 -15
- data/testing/rspec/spec/unit/models/outline_unit_spec.rb +0 -117
- data/testing/rspec/spec/unit/models/row_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/models/scenario_unit_spec.rb +0 -86
- data/testing/rspec/spec/unit/models/step_unit_spec.rb +0 -109
- data/testing/rspec/spec/unit/models/table_unit_spec.rb +0 -77
- data/testing/rspec/spec/unit/models/tag_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/named_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/nested_unit_spec.rb +0 -43
- data/testing/rspec/spec/unit/parsed_unit_spec.rb +0 -27
- data/testing/rspec/spec/unit/parsing_unit_spec.rb +0 -54
- data/testing/rspec/spec/unit/shared/bare_bones_models_unit_specs.rb +0 -14
- data/testing/rspec/spec/unit/shared/containing_models_unit_specs.rb +0 -127
- data/testing/rspec/spec/unit/shared/described_models_unit_specs.rb +0 -38
- data/testing/rspec/spec/unit/shared/keyworded_models_unit_specs.rb +0 -58
- data/testing/rspec/spec/unit/shared/models_unit_specs.rb +0 -15
- data/testing/rspec/spec/unit/shared/named_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/nested_models_unit_specs.rb +0 -51
- data/testing/rspec/spec/unit/shared/parsed_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/prepopulated_models_unit_specs.rb +0 -18
- data/testing/rspec/spec/unit/shared/sourced_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/stepped_models_unit_specs.rb +0 -46
- data/testing/rspec/spec/unit/shared/stringifiable_models_unit_specs.rb +0 -18
- data/testing/rspec/spec/unit/shared/tagged_models_unit_specs.rb +0 -72
- data/testing/rspec/spec/unit/sourceable_unit_spec.rb +0 -27
- data/testing/rspec/spec/unit/stepped_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/taggable_unit_spec.rb +0 -69
- data/testing/test_languages.json +0 -45
- data/todo.txt +0 -25
@@ -1,46 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../../spec_helper"
|
2
|
-
|
3
|
-
shared_examples_for 'a stepped model' do
|
4
|
-
|
5
|
-
# clazz must be defined by the calling file
|
6
|
-
|
7
|
-
let(:model) { clazz.new }
|
8
|
-
|
9
|
-
|
10
|
-
it 'has steps' do
|
11
|
-
expect(model).to respond_to(:steps)
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'can change its steps' do
|
15
|
-
expect(model).to respond_to(:steps=)
|
16
|
-
|
17
|
-
model.steps = :some_steps
|
18
|
-
expect(model.steps).to eq(:some_steps)
|
19
|
-
model.steps = :some_other_steps
|
20
|
-
expect(model.steps).to eq(:some_other_steps)
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
describe 'abstract instantiation' do
|
25
|
-
|
26
|
-
context 'a new stepped object' do
|
27
|
-
|
28
|
-
let(:model) { clazz.new }
|
29
|
-
|
30
|
-
|
31
|
-
it 'starts with no steps' do
|
32
|
-
expect(model.steps).to eq([])
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'contains steps' do
|
40
|
-
steps = [:step_1, :step_2, :step_3]
|
41
|
-
model.steps = steps
|
42
|
-
|
43
|
-
steps.each { |step| expect(model.children).to include(step) }
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../../spec_helper"
|
2
|
-
|
3
|
-
shared_examples_for 'a stringifiable model' do
|
4
|
-
|
5
|
-
# clazz must be defined by the calling file
|
6
|
-
|
7
|
-
let(:model) { clazz.new }
|
8
|
-
|
9
|
-
|
10
|
-
it 'can provide a custom string representation of itself' do
|
11
|
-
expect(model.method(:to_s).owner).to equal(clazz), "#{clazz} does not override #to_s"
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'represents itself as a string' do
|
15
|
-
expect(model.to_s).to be_a(String)
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
@@ -1,72 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../../spec_helper"
|
2
|
-
|
3
|
-
shared_examples_for 'a tagged model' do
|
4
|
-
|
5
|
-
# clazz must be defined by the calling file
|
6
|
-
|
7
|
-
let(:model) { clazz.new }
|
8
|
-
|
9
|
-
|
10
|
-
it 'has tags' do
|
11
|
-
expect(model).to respond_to(:tags)
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'can change its tags' do
|
15
|
-
expect(model).to respond_to(:tags=)
|
16
|
-
|
17
|
-
model.tags = :some_tags
|
18
|
-
expect(model.tags).to eq(:some_tags)
|
19
|
-
model.tags = :some_other_tags
|
20
|
-
expect(model.tags).to eq(:some_other_tags)
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
describe 'abstract instantiation' do
|
25
|
-
|
26
|
-
context 'a new tagged object' do
|
27
|
-
|
28
|
-
let(:model) { clazz.new }
|
29
|
-
|
30
|
-
|
31
|
-
it 'starts with no tags' do
|
32
|
-
expect(model.tags).to eq([])
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'starts with no inherited tags' do
|
36
|
-
expect(model.applied_tags).to eq([])
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'starts with no tags at all' do
|
40
|
-
expect(model.all_tags).to eq([])
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'has applied tags' do
|
48
|
-
expect(model).to respond_to(:applied_tags)
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'inherits its applied tags from its ancestors' do
|
52
|
-
all_parent_tags = [:parent_tag_1, :parent_tag_2, :grandparent_tag_1]
|
53
|
-
parent = double(:all_tags => all_parent_tags)
|
54
|
-
|
55
|
-
model.parent_model = parent
|
56
|
-
|
57
|
-
expect(model.applied_tags).to match_array(all_parent_tags)
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'knows all of its applicable tags' do
|
61
|
-
all_parent_tags = [:parent_tag_1, :parent_tag_2, :grandparent_tag_1]
|
62
|
-
own_tags = [:tag_1, :tag_2]
|
63
|
-
|
64
|
-
parent = double(:all_tags => all_parent_tags)
|
65
|
-
|
66
|
-
model.parent_model = parent
|
67
|
-
model.tags = own_tags
|
68
|
-
|
69
|
-
expect(model.all_tags).to match_array(all_parent_tags + own_tags)
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Sourceable, Unit', :unit_test => true do
|
5
|
-
|
6
|
-
let(:nodule) { CukeModeler::Sourceable }
|
7
|
-
let(:model) { Object.new.extend(nodule) }
|
8
|
-
|
9
|
-
|
10
|
-
describe 'unique behavior' do
|
11
|
-
|
12
|
-
it 'has a source line' do
|
13
|
-
expect(model).to respond_to(:source_line)
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'can change its source line' do
|
17
|
-
expect(model).to respond_to(:source_line=)
|
18
|
-
|
19
|
-
model.source_line = :some_source_line
|
20
|
-
expect(model.source_line).to eq(:some_source_line)
|
21
|
-
model.source_line = :some_other_source_line
|
22
|
-
expect(model.source_line).to eq(:some_other_source_line)
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Stepped, Unit', :unit_test => true do
|
5
|
-
|
6
|
-
let(:nodule) { CukeModeler::Stepped }
|
7
|
-
let(:stepped_model) { Object.new.extend(nodule) }
|
8
|
-
|
9
|
-
|
10
|
-
it 'has steps' do
|
11
|
-
expect(stepped_model).to respond_to(:steps)
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'can change its steps' do
|
15
|
-
expect(stepped_model).to respond_to(:steps=)
|
16
|
-
|
17
|
-
stepped_model.steps = :some_steps
|
18
|
-
expect(stepped_model.steps).to eq(:some_steps)
|
19
|
-
stepped_model.steps = :some_other_steps
|
20
|
-
expect(stepped_model.steps).to eq(:some_other_steps)
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Taggable, Unit', :unit_test => true do
|
5
|
-
|
6
|
-
let(:nodule) { CukeModeler::Taggable }
|
7
|
-
let(:model) { o = Object.new.extend(nodule)
|
8
|
-
|
9
|
-
def o.parent_model
|
10
|
-
@parent_model
|
11
|
-
end
|
12
|
-
|
13
|
-
def o.parent_model=(parent)
|
14
|
-
@parent_model = parent
|
15
|
-
end
|
16
|
-
|
17
|
-
o
|
18
|
-
}
|
19
|
-
|
20
|
-
|
21
|
-
describe 'unique behavior' do
|
22
|
-
|
23
|
-
it 'has tags' do
|
24
|
-
expect(model).to respond_to(:tags)
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'can change its tags' do
|
28
|
-
expect(model).to respond_to(:tags=)
|
29
|
-
|
30
|
-
model.tags = :some_tags
|
31
|
-
expect(model.tags).to eq(:some_tags)
|
32
|
-
model.tags = :some_other_tags
|
33
|
-
expect(model.tags).to eq(:some_other_tags)
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'has applied tags' do
|
37
|
-
expect(model).to respond_to(:applied_tags)
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'inherits its applied tags from its ancestors' do
|
41
|
-
all_parent_tags = [:parent_tag_1, :parent_tag_2, :grandparent_tag_1]
|
42
|
-
parent = double(:all_tags => all_parent_tags)
|
43
|
-
|
44
|
-
model.parent_model = parent
|
45
|
-
|
46
|
-
expect(model.applied_tags).to eq(all_parent_tags)
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'knows all of its applicable tags' do
|
50
|
-
all_parent_tags = [:parent_tag_1, :parent_tag_2, :grandparent_tag_1]
|
51
|
-
own_tags = [:tag_1, :tag_2]
|
52
|
-
|
53
|
-
parent = double(:all_tags => all_parent_tags)
|
54
|
-
|
55
|
-
model.parent_model = parent
|
56
|
-
model.tags = own_tags
|
57
|
-
|
58
|
-
expect(model.all_tags).to eq(all_parent_tags + own_tags)
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'may have no applied tags' do
|
62
|
-
model.parent_model = :not_a_tagged_object
|
63
|
-
|
64
|
-
expect(model.applied_tags).to eq([])
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
data/testing/test_languages.json
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"cm-test": {
|
3
|
-
"and": [
|
4
|
-
"CM-* ",
|
5
|
-
"CM-And "
|
6
|
-
],
|
7
|
-
"background": [
|
8
|
-
"CM-Background"
|
9
|
-
],
|
10
|
-
"but": [
|
11
|
-
"CM-* ",
|
12
|
-
"CM-But "
|
13
|
-
],
|
14
|
-
"examples": [
|
15
|
-
"CM-Examples",
|
16
|
-
"CM-Scenarios"
|
17
|
-
],
|
18
|
-
"feature": [
|
19
|
-
"CM-Feature",
|
20
|
-
"CM-Business Need",
|
21
|
-
"CM-Ability"
|
22
|
-
],
|
23
|
-
"given": [
|
24
|
-
"CM-* ",
|
25
|
-
"CM-Given "
|
26
|
-
],
|
27
|
-
"name": "CukeModeler Test Language",
|
28
|
-
"native": "CMT",
|
29
|
-
"scenario": [
|
30
|
-
"CM-Scenario"
|
31
|
-
],
|
32
|
-
"scenarioOutline": [
|
33
|
-
"CM-Scenario Outline",
|
34
|
-
"CM-Scenario Template"
|
35
|
-
],
|
36
|
-
"then": [
|
37
|
-
"CM-* ",
|
38
|
-
"CM-Then "
|
39
|
-
],
|
40
|
-
"when": [
|
41
|
-
"CM-* ",
|
42
|
-
"CM-When "
|
43
|
-
]
|
44
|
-
}
|
45
|
-
}
|
data/todo.txt
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
Priority
|
2
|
-
-------------
|
3
|
-
|
4
|
-
Show less boilerplate code in the documentation
|
5
|
-
replace copying raw data during adaptation (all of the Marshal#load/#unload calls) with simply testing that modification never happens in order to increase performance?
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
# todo - add compatibility with newer versions of Gherkin
|
10
|
-
# todo - incorporate cuke_modeler extensions from other projects
|
11
|
-
# todo - add plenty of testing around weird and minimal gherkin text for all models
|
12
|
-
# todo - add support for `Rule` keyword
|
13
|
-
# todo - incorporate new flexibility of `Example` keyword, etc.
|
14
|
-
# todo - Have CukeModeler::Parsing.dialect also control the default dialect used by Gherkin
|
15
|
-
|
16
|
-
Backlog
|
17
|
-
-------------
|
18
|
-
|
19
|
-
Include comments in the string output of a feature file
|
20
|
-
|
21
|
-
replace joined array source text with single string source text/heredocs
|
22
|
-
unit testing around parsing/modeling cases (whitespace, indentation, minimalistic feature elements, etc.)
|
23
|
-
replace "\n" usages with the currently set record separator (i.e "\$" )
|
24
|
-
make sure that all classes and tests are covered and attaches to code coverage
|
25
|
-
- make an actual Gherkin 5 adapter (just inherit from the Gherkin 4 adapter)
|