cuporter 0.3.12 → 0.3.13
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.
- data/Rakefile +1 -1
- data/lib/cuporter/feature_parser/node_parser.rb +5 -0
- data/lib/cuporter/feature_parser/parser_base.rb +5 -4
- data/lib/cuporter/feature_parser/tag_nodes_parser.rb +16 -0
- data/lib/cuporter/logging.rb +1 -1
- data/lib/cuporter/node/types.rb +17 -3
- data/lib/cuporter/report/tag_report.rb +1 -0
- metadata +4 -4
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2011 ThoughtWorks, Inc. Licensed under the MIT License
|
2
2
|
|
3
3
|
module Cuporter
|
4
4
|
module FeatureParser
|
@@ -24,7 +24,8 @@ module Cuporter
|
|
24
24
|
begin
|
25
25
|
handle_lines
|
26
26
|
rescue Exception => ex
|
27
|
-
|
27
|
+
raise if ENV['CUPORTER_MODE'] =~ /^test$/i
|
28
|
+
Cuporter.log_error(ex, "Error parsing file", "at line #{@line_no}:", @file,
|
28
29
|
%Q{\n\tIf this file can be run by Cucumber with no Gherkin lexing or parsing errors,
|
29
30
|
please submit a bug ticket @ github including: 1) this feature file or its contents, and 2) this stack trace.
|
30
31
|
})
|
@@ -71,9 +72,9 @@ module Cuporter
|
|
71
72
|
new_example_line(clean_cuke_line($1))
|
72
73
|
end
|
73
74
|
end
|
74
|
-
|
75
|
+
|
75
76
|
# EOF is the final way that we know we are finished with a "Scenario Outline"
|
76
|
-
|
77
|
+
handle_eof
|
77
78
|
end
|
78
79
|
|
79
80
|
def clean_cuke_line(sub_expression)
|
@@ -43,6 +43,22 @@ module Cuporter
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
+
|
47
|
+
def handle_eof
|
48
|
+
# EOF is the final way that we know we are finished with a "Scenario Outline"
|
49
|
+
close_scenario_outline
|
50
|
+
handle_tagless_feature if @filter.empty?
|
51
|
+
end
|
52
|
+
|
53
|
+
def handle_tagless_feature
|
54
|
+
if @feature && !@report.feature_node(@feature)
|
55
|
+
unless ( t = @report.tag_node(@report.class::TAGLESS))
|
56
|
+
t = @report.add_child(Node.new_node(:tag, @doc, 'cuke_name' => @report.class::TAGLESS))
|
57
|
+
end
|
58
|
+
t.add_child(Node.new_node(:Feature, @doc, @feature))
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
46
62
|
def close_scenario_outline
|
47
63
|
if @scenario_outline
|
48
64
|
if @example_set
|
data/lib/cuporter/logging.rb
CHANGED
data/lib/cuporter/node/types.rb
CHANGED
@@ -3,7 +3,16 @@ module Cuporter
|
|
3
3
|
module Node
|
4
4
|
NodeBase = Nokogiri::XML::Node
|
5
5
|
module Types
|
6
|
+
|
7
|
+
module FeatureNodeFinder
|
8
|
+
def feature_node(feature)
|
9
|
+
at("feature[cuke_name='#{feature[:cuke_name]}'][file_path='#{feature[:file_path]}']")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
6
13
|
class Report < NodeBase
|
14
|
+
include FeatureNodeFinder
|
15
|
+
|
7
16
|
def tag_node(tag)
|
8
17
|
at("tag[cuke_name='#{tag}']")
|
9
18
|
end
|
@@ -21,6 +30,13 @@ module Cuporter
|
|
21
30
|
def remove_tags!
|
22
31
|
search("*[@tags]").each {|e| e.delete('tags') }
|
23
32
|
end
|
33
|
+
|
34
|
+
TAGLESS = "Untagged Features"
|
35
|
+
|
36
|
+
def move_tagless_node_to_bottom
|
37
|
+
tagless = at("tag[cuke_name='#{TAGLESS}']")
|
38
|
+
add_child(tagless.remove) if tagless
|
39
|
+
end
|
24
40
|
end
|
25
41
|
|
26
42
|
class FilterSummary < NodeBase
|
@@ -70,9 +86,7 @@ module Cuporter
|
|
70
86
|
end
|
71
87
|
|
72
88
|
class Tag < NodeBase
|
73
|
-
|
74
|
-
at("feature[cuke_name='#{feature[:cuke_name]}'][file_path='#{feature[:file_path]}']")
|
75
|
-
end
|
89
|
+
include FeatureNodeFinder
|
76
90
|
end
|
77
91
|
|
78
92
|
class ScenarioOutline < NodeBase
|
@@ -26,6 +26,7 @@ module Cuporter
|
|
26
26
|
report.sort_all_descendants! if sort?
|
27
27
|
report.search(:tag).each {|f| f.number_all_descendants } if number?
|
28
28
|
report.total if total?
|
29
|
+
report.move_tagless_node_to_bottom
|
29
30
|
report.defoliate! if no_leaves?
|
30
31
|
report.remove_files! unless show_files?
|
31
32
|
report.remove_tags! unless show_tags?
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cuporter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 13
|
10
|
+
version: 0.3.13
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tim Camper
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-07-
|
18
|
+
date: 2011-07-05 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: nokogiri
|