cucumber 2.0.0.beta.2 → 2.0.0.beta.3
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 +25 -7
- data/cucumber.gemspec +1 -1
- data/features/docs/defining_steps/nested_steps.feature +0 -1
- data/features/docs/defining_steps/printing_messages.feature +1 -0
- data/features/docs/defining_steps/table_diffing.feature +9 -4
- data/features/docs/exception_in_after_step_hook.feature +1 -0
- data/features/docs/formatters/json_formatter.feature +51 -4
- data/features/docs/formatters/junit_formatter.feature +1 -0
- data/features/docs/gherkin/outlines.feature +4 -0
- data/features/docs/output_from_hooks.feature +128 -0
- data/features/docs/wire_protocol_table_diffing.feature +6 -2
- data/features/docs/writing_support_code/after_hooks.feature +56 -0
- data/lib/cucumber/cli/configuration.rb +0 -4
- data/lib/cucumber/cli/main.rb +0 -1
- data/lib/cucumber/cli/options.rb +0 -3
- data/lib/cucumber/formatter/console.rb +3 -1
- data/lib/cucumber/formatter/debug.rb +4 -0
- data/lib/cucumber/formatter/gherkin_formatter_adapter.rb +26 -3
- data/lib/cucumber/formatter/html.rb +6 -2
- data/lib/cucumber/formatter/usage.rb +1 -58
- data/lib/cucumber/mappings.rb +25 -7
- data/lib/cucumber/multiline_argument.rb +40 -82
- data/lib/cucumber/multiline_argument/data_table.rb +719 -0
- data/lib/cucumber/multiline_argument/doc_string.rb +10 -0
- data/lib/cucumber/platform.rb +1 -1
- data/lib/cucumber/rb_support/rb_world.rb +2 -4
- data/lib/cucumber/reports/legacy_formatter.rb +69 -22
- data/lib/cucumber/runtime.rb +0 -39
- data/lib/cucumber/runtime/for_programming_languages.rb +12 -10
- data/lib/cucumber/runtime/support_code.rb +11 -4
- data/lib/cucumber/wire_support/wire_protocol/requests.rb +2 -2
- data/spec/cucumber/formatter/pretty_spec.rb +5 -5
- data/spec/cucumber/mappings_spec.rb +137 -8
- data/spec/cucumber/multiline_argument/data_table_spec.rb +508 -0
- data/spec/cucumber/rb_support/rb_step_definition_spec.rb +3 -3
- data/spec/cucumber/rb_support/snippet_spec.rb +1 -1
- data/spec/cucumber/runtime/for_programming_languages_spec.rb +16 -12
- metadata +13 -6
- data/lib/cucumber/runtime/features_loader.rb +0 -62
@@ -37,10 +37,10 @@ module Cucumber
|
|
37
37
|
it "allows calling of other steps with inline arg" do
|
38
38
|
dsl.Given(/Outside/) do
|
39
39
|
location = Core::Ast::Location.new(__FILE__, __LINE__)
|
40
|
-
step "Inside",
|
40
|
+
step "Inside", table([['inside']])
|
41
41
|
end
|
42
|
-
dsl.Given(/Inside/) do |
|
43
|
-
$inside =
|
42
|
+
dsl.Given(/Inside/) do |t|
|
43
|
+
$inside = t.raw[0][0]
|
44
44
|
end
|
45
45
|
|
46
46
|
run_step "Outside"
|
@@ -99,7 +99,7 @@ module Cucumber
|
|
99
99
|
|
100
100
|
it "is helpful with doc string" do
|
101
101
|
@pattern = 'A "first" arg'
|
102
|
-
@multiline_argument =
|
102
|
+
@multiline_argument = MultilineArgument.from("", Core::Ast::Location.new(""))
|
103
103
|
|
104
104
|
expect(snippet_text).to eq unindented(%{
|
105
105
|
Given(/^A "(.*?)" arg$/) do |arg1, string|
|
@@ -7,26 +7,30 @@ module Cucumber
|
|
7
7
|
subject { Runtime::SupportCode.new(user_interface,{}) }
|
8
8
|
let(:runtime_facade) { Runtime::ForProgrammingLanguages.new(subject, user_interface) }
|
9
9
|
|
10
|
-
|
11
|
-
str = runtime_facade.doc_string('DOC')
|
10
|
+
describe "#doc_string" do
|
12
11
|
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
it 'defaults to a blank content-type' do
|
13
|
+
str = runtime_facade.doc_string('DOC')
|
14
|
+
expect(str).to be_kind_of(MultilineArgument::DocString)
|
15
|
+
expect(str.content_type).to eq('')
|
16
|
+
end
|
16
17
|
|
17
|
-
|
18
|
-
|
18
|
+
it 'can have a content type' do
|
19
|
+
str = runtime_facade.doc_string('DOC','ruby')
|
20
|
+
expect(str.content_type).to eq('ruby')
|
21
|
+
end
|
19
22
|
|
20
|
-
expect(str).to be_kind_of(Core::Ast::DocString)
|
21
|
-
expect(str.content_type).to eq('ruby')
|
22
23
|
end
|
23
24
|
|
24
|
-
|
25
|
-
|
25
|
+
describe "#table" do
|
26
|
+
|
27
|
+
it 'produces Ast::Table by #table' do
|
28
|
+
expect(runtime_facade.table(%{
|
26
29
|
| account | description | amount |
|
27
30
|
| INT-100 | Taxi | 114 |
|
28
31
|
| CUC-101 | Peeler | 22 |
|
29
|
-
|
32
|
+
})).to be_kind_of(MultilineArgument::DataTable)
|
33
|
+
end
|
30
34
|
end
|
31
35
|
end
|
32
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cucumber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.beta.
|
4
|
+
version: 2.0.0.beta.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aslak Hellesøy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber-core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.0.0.beta.
|
19
|
+
version: 1.0.0.beta.3
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.0.0.beta.
|
26
|
+
version: 1.0.0.beta.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: builder
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -589,6 +589,7 @@ files:
|
|
589
589
|
- features/docs/gherkin/using_descriptions.feature
|
590
590
|
- features/docs/gherkin/using_star_notation.feature
|
591
591
|
- features/docs/iso-8859-1.feature
|
592
|
+
- features/docs/output_from_hooks.feature
|
592
593
|
- features/docs/post_configuration_hook.feature
|
593
594
|
- features/docs/profiles.feature
|
594
595
|
- features/docs/rake_task.feature
|
@@ -600,6 +601,7 @@ files:
|
|
600
601
|
- features/docs/wire_protocol_tags.feature
|
601
602
|
- features/docs/wire_protocol_timeouts.feature
|
602
603
|
- features/docs/work_in_progress.feature
|
604
|
+
- features/docs/writing_support_code/after_hooks.feature
|
603
605
|
- features/docs/writing_support_code/around_hooks.feature
|
604
606
|
- features/docs/writing_support_code/before_hook.feature
|
605
607
|
- features/docs/writing_support_code/hook_order.feature
|
@@ -687,6 +689,8 @@ files:
|
|
687
689
|
- lib/cucumber/load_path.rb
|
688
690
|
- lib/cucumber/mappings.rb
|
689
691
|
- lib/cucumber/multiline_argument.rb
|
692
|
+
- lib/cucumber/multiline_argument/data_table.rb
|
693
|
+
- lib/cucumber/multiline_argument/doc_string.rb
|
690
694
|
- lib/cucumber/platform.rb
|
691
695
|
- lib/cucumber/rake/task.rb
|
692
696
|
- lib/cucumber/rb_support/rb_dsl.rb
|
@@ -701,7 +705,6 @@ files:
|
|
701
705
|
- lib/cucumber/rspec/disable_option_parser.rb
|
702
706
|
- lib/cucumber/rspec/doubles.rb
|
703
707
|
- lib/cucumber/runtime.rb
|
704
|
-
- lib/cucumber/runtime/features_loader.rb
|
705
708
|
- lib/cucumber/runtime/for_programming_languages.rb
|
706
709
|
- lib/cucumber/runtime/gated_receiver.rb
|
707
710
|
- lib/cucumber/runtime/results.rb
|
@@ -743,6 +746,7 @@ files:
|
|
743
746
|
- spec/cucumber/formatter/progress_spec.rb
|
744
747
|
- spec/cucumber/formatter/spec_helper.rb
|
745
748
|
- spec/cucumber/mappings_spec.rb
|
749
|
+
- spec/cucumber/multiline_argument/data_table_spec.rb
|
746
750
|
- spec/cucumber/rake/forked_spec.rb
|
747
751
|
- spec/cucumber/rb_support/rb_language_spec.rb
|
748
752
|
- spec/cucumber/rb_support/rb_step_definition_spec.rb
|
@@ -792,7 +796,7 @@ rubyforge_project:
|
|
792
796
|
rubygems_version: 2.0.14
|
793
797
|
signing_key:
|
794
798
|
specification_version: 4
|
795
|
-
summary: cucumber-2.0.0.beta.
|
799
|
+
summary: cucumber-2.0.0.beta.3
|
796
800
|
test_files:
|
797
801
|
- features/docs/api/list_step_defs_as_json.feature
|
798
802
|
- features/docs/api/run_cli_main_with_existing_runtime.feature
|
@@ -841,6 +845,7 @@ test_files:
|
|
841
845
|
- features/docs/gherkin/using_descriptions.feature
|
842
846
|
- features/docs/gherkin/using_star_notation.feature
|
843
847
|
- features/docs/iso-8859-1.feature
|
848
|
+
- features/docs/output_from_hooks.feature
|
844
849
|
- features/docs/post_configuration_hook.feature
|
845
850
|
- features/docs/profiles.feature
|
846
851
|
- features/docs/rake_task.feature
|
@@ -852,6 +857,7 @@ test_files:
|
|
852
857
|
- features/docs/wire_protocol_tags.feature
|
853
858
|
- features/docs/wire_protocol_timeouts.feature
|
854
859
|
- features/docs/work_in_progress.feature
|
860
|
+
- features/docs/writing_support_code/after_hooks.feature
|
855
861
|
- features/docs/writing_support_code/around_hooks.feature
|
856
862
|
- features/docs/writing_support_code/before_hook.feature
|
857
863
|
- features/docs/writing_support_code/hook_order.feature
|
@@ -889,6 +895,7 @@ test_files:
|
|
889
895
|
- spec/cucumber/formatter/progress_spec.rb
|
890
896
|
- spec/cucumber/formatter/spec_helper.rb
|
891
897
|
- spec/cucumber/mappings_spec.rb
|
898
|
+
- spec/cucumber/multiline_argument/data_table_spec.rb
|
892
899
|
- spec/cucumber/rake/forked_spec.rb
|
893
900
|
- spec/cucumber/rb_support/rb_language_spec.rb
|
894
901
|
- spec/cucumber/rb_support/rb_step_definition_spec.rb
|
@@ -1,62 +0,0 @@
|
|
1
|
-
require 'cucumber/errors'
|
2
|
-
|
3
|
-
module Cucumber
|
4
|
-
class Runtime
|
5
|
-
|
6
|
-
class FeaturesLoader
|
7
|
-
include Formatter::Duration
|
8
|
-
|
9
|
-
def initialize(feature_files, filters, tag_expression)
|
10
|
-
@feature_files, @filters, @tag_expression = feature_files, filters, tag_expression
|
11
|
-
end
|
12
|
-
|
13
|
-
def features
|
14
|
-
load unless (defined? @features) and @features
|
15
|
-
@features
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def load
|
21
|
-
features = Ast::Features.new
|
22
|
-
|
23
|
-
tag_counts = {}
|
24
|
-
start = Time.new
|
25
|
-
log.debug("Features:\n")
|
26
|
-
@feature_files.each do |f|
|
27
|
-
feature_file = FeatureFile.new(f)
|
28
|
-
feature = feature_file.parse(@filters, tag_counts)
|
29
|
-
if feature
|
30
|
-
features.add_feature(feature)
|
31
|
-
log.debug(" * #{f}\n")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
duration = Time.now - start
|
35
|
-
log.debug("Parsing feature files took #{format_duration(duration)}\n\n")
|
36
|
-
|
37
|
-
check_tag_limits(tag_counts)
|
38
|
-
|
39
|
-
@features = features
|
40
|
-
end
|
41
|
-
|
42
|
-
def check_tag_limits(tag_counts)
|
43
|
-
error_messages = []
|
44
|
-
@tag_expression.limits.each do |tag_name, tag_limit|
|
45
|
-
tag_locations = (tag_counts[tag_name] || [])
|
46
|
-
tag_count = tag_locations.length
|
47
|
-
if tag_count > tag_limit
|
48
|
-
error = "#{tag_name} occurred #{tag_count} times, but the limit was set to #{tag_limit}\n " +
|
49
|
-
tag_locations.join("\n ")
|
50
|
-
error_messages << error
|
51
|
-
end
|
52
|
-
end
|
53
|
-
raise TagExcess.new(error_messages) if error_messages.any?
|
54
|
-
end
|
55
|
-
|
56
|
-
def log
|
57
|
-
Cucumber.logger
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
end
|