kosmas58-cucumber 0.1.16.6 → 0.1.99.21

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.
Files changed (248) hide show
  1. data/History.txt +126 -2
  2. data/License.txt +1 -1
  3. data/Manifest.txt +0 -270
  4. data/Rakefile +1 -1
  5. data/bin/cucumber +2 -2
  6. data/config/hoe.rb +7 -2
  7. data/examples/cs/features/step_definitons/calculator_steps.rb +1 -1
  8. data/examples/i18n/README.textile +1 -1
  9. data/examples/i18n/Rakefile +3 -3
  10. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +1 -6
  11. data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +1 -1
  12. data/examples/i18n/de/features/addition.feature +6 -6
  13. data/examples/i18n/de/features/step_definitons/calculator_steps.rb +2 -2
  14. data/examples/i18n/en/features/addition.feature +6 -6
  15. data/examples/i18n/en/features/step_definitons/calculator_steps.rb +2 -2
  16. data/examples/i18n/es/features/adicion.feature +11 -12
  17. data/examples/i18n/es/features/step_definitons/calculador_steps.rb +7 -10
  18. data/examples/i18n/es/lib/calculador.rb +4 -1
  19. data/examples/i18n/et/features/liitmine.feature +7 -6
  20. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +1 -1
  21. data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +1 -1
  22. data/examples/i18n/fi/features/yhteenlasku.feature +2 -2
  23. data/examples/i18n/fr/features/addition.feature +2 -2
  24. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +1 -1
  25. data/examples/i18n/id/features/addition.feature +6 -6
  26. data/examples/i18n/id/features/step_definitons/calculator_steps.rb +2 -2
  27. data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +1 -1
  28. data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +2 -3
  29. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +1 -1
  30. data/examples/i18n/lt/features/addition.feature +7 -6
  31. data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +2 -2
  32. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +7 -7
  33. data/examples/i18n/no/features/summering.feature +1 -0
  34. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +1 -1
  35. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +1 -1
  36. data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +1 -1
  37. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +2 -2
  38. data/examples/java/src/cucumber/demo/Hello.java +16 -0
  39. data/examples/jbehave/README.textile +17 -0
  40. data/examples/jbehave/features/support/env.rb +7 -0
  41. data/examples/jbehave/features/trading.feature +24 -0
  42. data/examples/jbehave/pom.xml +48 -0
  43. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/converters/TraderConverter.java +32 -0
  44. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Stock.java +42 -0
  45. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Trader.java +29 -0
  46. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/persistence/TraderPersister.java +22 -0
  47. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/scenarios/TraderSteps.java +65 -0
  48. data/examples/self_test/README.textile +4 -1
  49. data/examples/{calculator_ruby_features → self_test}/Rakefile +3 -3
  50. data/examples/self_test/features/background/failing_background.feature +10 -0
  51. data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
  52. data/examples/self_test/features/background/multiline_args_background.feature +32 -0
  53. data/examples/self_test/features/background/passing_background.feature +10 -0
  54. data/examples/self_test/features/background/pending_background.feature +10 -0
  55. data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  56. data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  57. data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
  58. data/examples/self_test/features/lots_of_undefined.feature +8 -0
  59. data/examples/self_test/features/outline_sample.feature +11 -5
  60. data/examples/self_test/features/sample.feature +8 -3
  61. data/examples/self_test/features/step_definitions/sample_steps.rb +53 -4
  62. data/examples/self_test/features/support/env.rb +1 -0
  63. data/examples/self_test/features/support/tag_count_formatter.rb +25 -0
  64. data/examples/tickets/features/172.feature +28 -0
  65. data/examples/tickets/features/177/1.feature +29 -0
  66. data/examples/tickets/features/177/2.feature +21 -0
  67. data/examples/tickets/features/177/3.feature +18 -0
  68. data/examples/tickets/features/180.feature +7 -0
  69. data/examples/tickets/features/scenario_outline.feature +6 -1
  70. data/examples/tickets/features/step_definitons/tickets_steps.rb +27 -3
  71. data/examples/tickets/features/tickets.feature +4 -0
  72. data/features/background.feature +223 -0
  73. data/features/cucumber_cli.feature +218 -98
  74. data/features/cucumber_cli_outlines.feature +54 -37
  75. data/features/custom_formatter.feature +11 -0
  76. data/features/report_called_undefined_steps.feature +32 -0
  77. data/features/step_definitions/cucumber_steps.rb +7 -3
  78. data/features/step_definitions/extra_steps.rb +1 -1
  79. data/features/support/env.rb +2 -1
  80. data/gem_tasks/flog.rake +1 -1
  81. data/gem_tasks/gemspec.rake +2 -2
  82. data/gem_tasks/jar.rake +67 -0
  83. data/lib/autotest/cucumber_mixin.rb +17 -23
  84. data/lib/cucumber.rb +63 -11
  85. data/lib/cucumber/ast.rb +29 -0
  86. data/lib/cucumber/ast/background.rb +88 -0
  87. data/lib/cucumber/ast/comment.rb +26 -0
  88. data/lib/cucumber/ast/examples.rb +26 -0
  89. data/lib/cucumber/ast/feature.rb +66 -0
  90. data/lib/cucumber/ast/features.rb +39 -0
  91. data/lib/cucumber/ast/filter.rb +22 -0
  92. data/lib/cucumber/ast/outline_table.rb +49 -0
  93. data/lib/cucumber/ast/py_string.rb +52 -0
  94. data/lib/cucumber/ast/scenario.rb +103 -0
  95. data/lib/cucumber/ast/scenario_outline.rb +92 -0
  96. data/lib/cucumber/ast/step.rb +161 -0
  97. data/lib/cucumber/ast/steps.rb +13 -0
  98. data/lib/cucumber/ast/table.rb +218 -0
  99. data/lib/cucumber/ast/tags.rb +40 -0
  100. data/lib/cucumber/ast/visitor.rb +109 -0
  101. data/lib/cucumber/broadcaster.rb +1 -6
  102. data/lib/cucumber/cli/configuration.rb +339 -0
  103. data/lib/cucumber/cli/language_help_formatter.rb +59 -0
  104. data/lib/cucumber/cli/main.rb +100 -0
  105. data/lib/cucumber/core_ext/exception.rb +41 -8
  106. data/lib/cucumber/core_ext/instance_exec.rb +54 -0
  107. data/lib/cucumber/core_ext/proc.rb +29 -65
  108. data/lib/cucumber/core_ext/string.rb +19 -0
  109. data/lib/cucumber/formatter.rb +1 -0
  110. data/lib/cucumber/{formatters → formatter}/ansicolor.rb +14 -16
  111. data/lib/cucumber/formatter/color_io.rb +17 -0
  112. data/lib/cucumber/formatter/console.rb +119 -0
  113. data/lib/cucumber/formatter/cucumber.css +55 -0
  114. data/lib/cucumber/formatter/cucumber.sass +49 -0
  115. data/lib/cucumber/formatter/html.rb +121 -0
  116. data/lib/cucumber/formatter/pretty.rb +167 -0
  117. data/lib/cucumber/formatter/profile.rb +77 -0
  118. data/lib/cucumber/formatter/progress.rb +68 -0
  119. data/lib/cucumber/formatter/rerun.rb +35 -0
  120. data/lib/cucumber/formatter/unicode.rb +35 -0
  121. data/lib/cucumber/formatters/unicode.rb +2 -35
  122. data/lib/cucumber/jbehave.rb +102 -0
  123. data/lib/cucumber/languages.yml +128 -75
  124. data/lib/cucumber/parser.rb +43 -0
  125. data/lib/cucumber/parser/basic.rb +0 -0
  126. data/lib/cucumber/parser/feature.rb +1490 -0
  127. data/lib/cucumber/parser/feature.tt +188 -0
  128. data/lib/cucumber/parser/i18n.tt +31 -0
  129. data/lib/cucumber/parser/table.rb +402 -0
  130. data/lib/cucumber/parser/table.tt +59 -0
  131. data/lib/cucumber/parser/treetop_ext.rb +75 -0
  132. data/lib/cucumber/platform.rb +3 -17
  133. data/lib/cucumber/rails/rspec.rb +5 -2
  134. data/lib/cucumber/step_definition.rb +87 -0
  135. data/lib/cucumber/step_mother.rb +151 -66
  136. data/lib/cucumber/version.rb +2 -2
  137. data/rails_generators/cucumber/USAGE +3 -2
  138. data/rails_generators/cucumber/cucumber_generator.rb +33 -23
  139. data/rails_generators/cucumber/templates/cucumber +2 -1
  140. data/rails_generators/cucumber/templates/cucumber.rake +6 -1
  141. data/rails_generators/cucumber/templates/env.rb +1 -1
  142. data/rails_generators/feature/USAGE +3 -0
  143. data/rails_generators/feature/feature_generator.rb +30 -6
  144. data/spec/cucumber/ast/background_spec.rb +58 -0
  145. data/spec/cucumber/ast/feature_factory.rb +54 -0
  146. data/spec/cucumber/ast/feature_spec.rb +60 -0
  147. data/spec/cucumber/ast/py_string_spec.rb +40 -0
  148. data/spec/cucumber/ast/scenario_outline_spec.rb +64 -0
  149. data/spec/cucumber/ast/scenario_spec.rb +82 -0
  150. data/spec/cucumber/ast/step_spec.rb +45 -0
  151. data/spec/cucumber/ast/table_spec.rb +81 -0
  152. data/spec/cucumber/ast/tags_spec.rb +23 -0
  153. data/spec/cucumber/broadcaster_spec.rb +4 -17
  154. data/spec/cucumber/cli/configuration_spec.rb +239 -0
  155. data/spec/cucumber/cli/main_spec.rb +164 -0
  156. data/spec/cucumber/core_ext/proc_spec.rb +27 -35
  157. data/spec/cucumber/core_ext/string_spec.rb +8 -0
  158. data/spec/cucumber/{formatters → formatter}/ansicolor_spec.rb +2 -2
  159. data/spec/cucumber/formatter/html/cucumber.css +37 -0
  160. data/spec/cucumber/formatter/html/cucumber.js +13 -0
  161. data/spec/cucumber/formatter/html/index.html +45 -0
  162. data/spec/cucumber/formatter/html/jquery-1.3.min.js +19 -0
  163. data/spec/cucumber/formatter/html/jquery.uitableedit.js +100 -0
  164. data/spec/cucumber/formatters/profile_formatter_spec.rb +17 -16
  165. data/spec/cucumber/parser/feature_parser_spec.rb +281 -0
  166. data/spec/cucumber/parser/table_parser_spec.rb +48 -0
  167. data/spec/cucumber/step_definition_spec.rb +62 -0
  168. data/spec/cucumber/step_mother_spec.rb +50 -51
  169. data/spec/cucumber/treetop_parser/empty_feature.feature +1 -1
  170. data/spec/cucumber/treetop_parser/scenario_outline.feature +1 -1
  171. data/spec/cucumber/treetop_parser/spaces.feature +3 -1
  172. data/spec/cucumber/treetop_parser/with_comments.feature +1 -1
  173. data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
  174. data/spec/cucumber/world/pending_spec.rb +13 -12
  175. data/spec/spec_helper.rb +1 -1
  176. metadata +107 -79
  177. data/examples/calculator_ruby_features/features/addition.rb +0 -39
  178. data/examples/calculator_ruby_features/features/step_definitons/calculator_steps.rb +0 -43
  179. data/gem_tasks/treetop.rake +0 -41
  180. data/lib/cucumber/cli.rb +0 -355
  181. data/lib/cucumber/executor.rb +0 -205
  182. data/lib/cucumber/formatters.rb +0 -1
  183. data/lib/cucumber/formatters/autotest_formatter.rb +0 -23
  184. data/lib/cucumber/formatters/cucumber.css +0 -132
  185. data/lib/cucumber/formatters/cucumber.js +0 -11
  186. data/lib/cucumber/formatters/html_formatter.rb +0 -152
  187. data/lib/cucumber/formatters/jquery.js +0 -32
  188. data/lib/cucumber/formatters/pretty_formatter.rb +0 -285
  189. data/lib/cucumber/formatters/profile_formatter.rb +0 -92
  190. data/lib/cucumber/formatters/progress_formatter.rb +0 -61
  191. data/lib/cucumber/model.rb +0 -1
  192. data/lib/cucumber/model/table.rb +0 -32
  193. data/lib/cucumber/step_methods.rb +0 -49
  194. data/lib/cucumber/tree.rb +0 -16
  195. data/lib/cucumber/tree/feature.rb +0 -105
  196. data/lib/cucumber/tree/features.rb +0 -21
  197. data/lib/cucumber/tree/given_scenario.rb +0 -13
  198. data/lib/cucumber/tree/scenario.rb +0 -240
  199. data/lib/cucumber/tree/step.rb +0 -173
  200. data/lib/cucumber/tree/table.rb +0 -26
  201. data/lib/cucumber/tree/top_down_visitor.rb +0 -23
  202. data/lib/cucumber/treetop_parser/feature.treetop.erb +0 -254
  203. data/lib/cucumber/treetop_parser/feature_ar.rb +0 -1951
  204. data/lib/cucumber/treetop_parser/feature_cy.rb +0 -1951
  205. data/lib/cucumber/treetop_parser/feature_da.rb +0 -1951
  206. data/lib/cucumber/treetop_parser/feature_de.rb +0 -1951
  207. data/lib/cucumber/treetop_parser/feature_en-lol.rb +0 -1951
  208. data/lib/cucumber/treetop_parser/feature_en-tx.rb +0 -1951
  209. data/lib/cucumber/treetop_parser/feature_en.rb +0 -1951
  210. data/lib/cucumber/treetop_parser/feature_es.rb +0 -1951
  211. data/lib/cucumber/treetop_parser/feature_et.rb +0 -1951
  212. data/lib/cucumber/treetop_parser/feature_fi.rb +0 -1951
  213. data/lib/cucumber/treetop_parser/feature_fr.rb +0 -1951
  214. data/lib/cucumber/treetop_parser/feature_id.rb +0 -1951
  215. data/lib/cucumber/treetop_parser/feature_it.rb +0 -1951
  216. data/lib/cucumber/treetop_parser/feature_ja.rb +0 -1951
  217. data/lib/cucumber/treetop_parser/feature_ko.rb +0 -1951
  218. data/lib/cucumber/treetop_parser/feature_lt.rb +0 -1951
  219. data/lib/cucumber/treetop_parser/feature_nl.rb +0 -1951
  220. data/lib/cucumber/treetop_parser/feature_no.rb +0 -1951
  221. data/lib/cucumber/treetop_parser/feature_parser.rb +0 -36
  222. data/lib/cucumber/treetop_parser/feature_pl.rb +0 -1951
  223. data/lib/cucumber/treetop_parser/feature_pt.rb +0 -1951
  224. data/lib/cucumber/treetop_parser/feature_ro.rb +0 -1951
  225. data/lib/cucumber/treetop_parser/feature_ro2.rb +0 -1951
  226. data/lib/cucumber/treetop_parser/feature_ru.rb +0 -1951
  227. data/lib/cucumber/treetop_parser/feature_se.rb +0 -1951
  228. data/lib/cucumber/treetop_parser/feature_zh-CN.rb +0 -1951
  229. data/lib/cucumber/world.rb +0 -1
  230. data/lib/cucumber/world/pending.rb +0 -22
  231. data/setup.rb +0 -1585
  232. data/spec/cucumber/cli_spec.rb +0 -521
  233. data/spec/cucumber/executor_spec.rb +0 -382
  234. data/spec/cucumber/formatters/autotest_formatter_spec.rb +0 -26
  235. data/spec/cucumber/formatters/features.html +0 -269
  236. data/spec/cucumber/formatters/html_formatter_spec.rb +0 -110
  237. data/spec/cucumber/formatters/pretty_formatter_spec.rb +0 -410
  238. data/spec/cucumber/formatters/progress_formatter_spec.rb +0 -81
  239. data/spec/cucumber/model/table_spec.rb +0 -32
  240. data/spec/cucumber/tree/feature_spec.rb +0 -122
  241. data/spec/cucumber/tree/row_scenario_outline_spec.rb +0 -73
  242. data/spec/cucumber/tree/row_scenario_spec.rb +0 -55
  243. data/spec/cucumber/tree/row_step_outline_spec.rb +0 -38
  244. data/spec/cucumber/tree/scenario_outline_spec.rb +0 -50
  245. data/spec/cucumber/tree/scenario_spec.rb +0 -134
  246. data/spec/cucumber/tree/step_outline_spec.rb +0 -17
  247. data/spec/cucumber/tree/step_spec.rb +0 -59
  248. data/spec/cucumber/treetop_parser/feature_parser_spec.rb +0 -120
@@ -1,205 +0,0 @@
1
- module Cucumber
2
- class Executor
3
- attr_reader :failed
4
- attr_accessor :formatters
5
- attr_writer :scenario_names, :lines_for_features, :dry_run
6
-
7
- def initialize(step_mother)
8
- @world_procs = []
9
- @before_scenario_procs = []
10
- @after_scenario_procs = []
11
- @after_step_procs = []
12
- @step_mother = step_mother
13
-
14
- @executed_scenarios = {}
15
- @regular_scenario_cache = {}
16
- end
17
-
18
- def register_world_proc(&proc)
19
- @world_procs << proc
20
- end
21
-
22
- def register_before_scenario_proc(&proc)
23
- proc.extend(CoreExt::CallIn)
24
- @before_scenario_procs << proc
25
- end
26
-
27
- def register_after_scenario_proc(&proc)
28
- proc.extend(CoreExt::CallIn)
29
- @after_scenario_procs << proc
30
- end
31
-
32
- def register_after_step_proc(&proc)
33
- proc.extend(CoreExt::CallIn)
34
- @after_step_procs << proc
35
- end
36
-
37
- def visit_features(features)
38
- formatters.visit_features(features)
39
- features.accept(self)
40
- formatters.dump
41
- end
42
-
43
- def visit_feature(feature)
44
- @feature_file = feature.file
45
-
46
- if accept_feature?(feature)
47
- formatters.feature_executing(feature)
48
- feature.accept(self)
49
- @executed_scenarios = {}
50
- @regular_scenario_cache = {}
51
- end
52
- end
53
-
54
- def visit_header(header)
55
- formatters.header_executing(header)
56
- end
57
-
58
- def visit_row_scenario(scenario)
59
- execute_scenario(@regular_scenario_cache[scenario.name]) if executing_unprepared_row_scenario?(scenario)
60
- visit_scenario(scenario)
61
- end
62
-
63
- def visit_regular_scenario(scenario)
64
- @regular_scenario_cache[scenario.name] = scenario
65
- visit_scenario(scenario)
66
- end
67
-
68
- def visit_scenario_outline(scenario)
69
- visit_regular_scenario(scenario)
70
- end
71
-
72
- def visit_scenario(scenario)
73
- if accept_scenario?(scenario)
74
- @executed_scenarios[scenario.name] = true
75
- execute_scenario(scenario)
76
- end
77
- end
78
-
79
- def execute_scenario(scenario)
80
- @error = nil
81
- @pending = nil
82
-
83
- @world = create_world
84
-
85
- formatters.scenario_executing(scenario)
86
- @before_scenario_procs.each{|p| p.call_in(@world, *[])} unless @dry_run
87
- scenario.accept(self)
88
- @after_scenario_procs.each{|p| p.call_in(@world, *[])} unless @dry_run
89
- formatters.scenario_executed(scenario)
90
- end
91
-
92
- def accept_scenario?(scenario)
93
- scenario_at_specified_line?(scenario) &&
94
- scenario_has_specified_name?(scenario)
95
- end
96
-
97
- def accept_feature?(feature)
98
- feature.scenarios.any? { |s| accept_scenario?(s) }
99
- end
100
-
101
- def visit_row_step(step)
102
- visit_step(step)
103
- end
104
-
105
- def visit_regular_step(step)
106
- visit_step(step)
107
- end
108
-
109
- def visit_step_outline(step)
110
- regexp, args, proc = step.regexp_args_proc(@step_mother)
111
- formatters.step_traced(step, regexp, args)
112
- end
113
-
114
- def visit_step(step)
115
- unless @pending || @error
116
- begin
117
- regexp, args, proc = step.regexp_args_proc(@step_mother)
118
- formatters.step_executing(step, regexp, args)
119
- step.execute_in(@world, regexp, args, proc) unless @dry_run
120
- @after_step_procs.each{|p| p.call_in(@world, *[])}
121
- formatters.step_passed(step, regexp, args)
122
- rescue ForcedPending => e
123
- step.error = e
124
- record_pending_step(step, regexp, args)
125
- rescue Pending
126
- record_pending_step(step, regexp, args)
127
- rescue => e
128
- @failed = true
129
- @error = step.error = e
130
- formatters.step_failed(step, regexp, args)
131
- end
132
- else
133
- begin
134
- regexp, args, proc = step.regexp_args_proc(@step_mother)
135
- step.execute_in(@world, regexp, args, proc)
136
- formatters.step_skipped(step, regexp, args)
137
- rescue ForcedPending => e
138
- step.error = e
139
- record_pending_step(step, regexp, args)
140
- rescue Pending
141
- record_pending_step(step, regexp, args)
142
- rescue Exception
143
- formatters.step_skipped(step, regexp, args)
144
- end
145
- end
146
- end
147
-
148
- def record_pending_step(step, regexp, args)
149
- @pending = true
150
- formatters.step_pending(step, regexp, args)
151
- end
152
-
153
- def executing_unprepared_row_scenario?(scenario)
154
- accept_scenario?(scenario) && !@executed_scenarios[scenario.name]
155
- end
156
-
157
- def scenario_at_specified_line?(scenario)
158
- if lines_defined_for_current_feature?
159
- @lines_for_features[@feature_file].inject(false) { |at_line, line| at_line || scenario.at_line?(line) }
160
- else
161
- true
162
- end
163
- end
164
-
165
- def scenario_has_specified_name?(scenario)
166
- if @scenario_names && !@scenario_names.empty?
167
- @scenario_names.include?(scenario.name)
168
- else
169
- true
170
- end
171
- end
172
-
173
- def lines_defined_for_current_feature?
174
- @lines_for_features && !@lines_for_features[@feature_file].nil? && !@lines_for_features[@feature_file].empty?
175
- end
176
-
177
- def create_world
178
- world = Object.new
179
- @world_procs.each do |world_proc|
180
- world = world_proc.call(world)
181
- end
182
-
183
- world.extend(World::Pending)
184
- world.extend(::Spec::Matchers) if defined?(::Spec::Matchers)
185
- define_step_call_methods(world)
186
- world
187
- end
188
-
189
- def define_step_call_methods(world)
190
- world.instance_variable_set('@__executor', self)
191
- world.instance_eval do
192
- class << self
193
- def run_step(name)
194
- _, args, proc = @__executor.instance_variable_get(:@step_mother).regexp_args_proc(name)
195
- proc.call_in(self, *args)
196
- end
197
-
198
- %w{given when then and but}.each do |keyword|
199
- alias_method Cucumber.language[keyword], :run_step
200
- end
201
- end
202
- end
203
- end
204
- end
205
- end
@@ -1 +0,0 @@
1
- %w{html pretty progress profile autotest}.each{|n| require "cucumber/formatters/#{n}_formatter"}
@@ -1,23 +0,0 @@
1
- require 'cucumber/formatters/ansicolor'
2
-
3
- module Cucumber
4
- module Formatters
5
- class AutotestFormatter
6
- def initialize(io)
7
- @io = io
8
- @failed_scenarios = []
9
- end
10
-
11
- def step_didnt_pass(step, regexp, args)
12
- unless @failed_scenarios.include? step.scenario.name
13
- @failed_scenarios << step.scenario.name
14
- @io.puts step.scenario.name
15
- end
16
- end
17
-
18
- alias step_failed step_didnt_pass
19
- alias step_pending step_didnt_pass
20
- alias step_skipped step_didnt_pass
21
- end
22
- end
23
- end
@@ -1,132 +0,0 @@
1
- body {
2
- background: #fff;
3
- font-size: 80%;
4
- margin:0pt;
5
- padding:0pt;
6
- }
7
-
8
- #container {
9
- background:white none repeat scroll 0%;
10
- font-family:Helvetica,Arial,sans-serif;
11
- margin:0pt auto;
12
- position:relative;
13
- text-align:left;
14
- top:1.0em;
15
- width:78em;
16
- }
17
-
18
- span {
19
- font-weight: bold;
20
- text-decoration: underline;
21
- }
22
-
23
- dl {
24
- font: normal 11px "Lucida Grande", Helvetica, sans-serif;
25
- margin-left: 5px;
26
- }
27
-
28
- dl.new {
29
- border-left: 5px solid #444444;
30
- }
31
-
32
- dl.pending {
33
- border-left: 5px solid #FAF834;
34
- }
35
-
36
- dl.failed {
37
- border-left: 5px solid #C20000;
38
- }
39
-
40
- dl.passed {
41
- border-left: 5px solid #65C400;
42
- }
43
-
44
- dt {
45
- color: #fff;
46
- padding: 3px;
47
- font-weight: bold;
48
- }
49
-
50
- dl.new > dt {
51
- background: #444444;
52
- }
53
-
54
- dl.pending > dt {
55
- color: #131313;
56
- background: #FAF834;
57
- }
58
-
59
- dl.failed > dt {
60
- background: #C20000;
61
- }
62
-
63
- dl.passed > dt {
64
- background: #65C400;
65
- }
66
-
67
- dd {
68
- margin: 0px 0px 0px 0px;
69
- }
70
-
71
- dd p, pre {
72
- padding: 5px;
73
- margin-top: 0;
74
- margin-bottom: 5px;
75
- }
76
-
77
- dl.passed > dd > p, li.passed {
78
- background: #DBFFB4; color: #3D7700;
79
- border-bottom: 1px solid #65C400;
80
- }
81
-
82
- dl.failed > dd > p, li.failed {
83
- color: #C20000; background: #FFFBD3;
84
- border-bottom: 1px solid #C20000;
85
- }
86
-
87
- dl.pending > dd > p, li.pending {
88
- color: #131313; background: #FCFB98;
89
- border-bottom: 1px solid #FAF834;
90
- }
91
-
92
- dl.new > dd > p, li.new {
93
- color: #444444; background: #DDDDDD;
94
- border-bottom: 1px solid #444444;
95
- }
96
-
97
- span.param, span.param_editor {
98
- font-weight: bold;
99
- }
100
-
101
- input {
102
- width: 100%;
103
- }
104
-
105
- ul {
106
- padding: 0px;
107
- list-style: none;
108
- }
109
-
110
- ul > li {
111
- margin: 5px 0px 5px 5px;
112
- padding: 3px 3px 3px 5px;
113
- }
114
-
115
- div.auto_complete ul {
116
- list-style-type: none;
117
- border: 2px solid #F0F0F0;
118
- margin: 0px;
119
- padding: 0px;
120
- }
121
-
122
- div.auto_complete ul li {
123
- background-color: white;
124
- list-style-type: none;
125
- display: block;
126
- margin: 0;
127
- padding: 2px;
128
- }
129
-
130
- div.auto_complete ul li.selected {
131
- color: #444444; background: #DDDDDD;
132
- }
@@ -1,11 +0,0 @@
1
- function stepPassed(id) {
2
- $("#"+id).removeClass("new").addClass("passed");
3
- }
4
-
5
- function stepPending(id) {
6
- $("#"+id).removeClass("new").addClass("pending");
7
- }
8
-
9
- function stepFailed(id, message, backtrace) {
10
- $("#"+id).removeClass("new").addClass("failed").append("<div>" + message + "</div>").append("<pre>" + backtrace + "</pre>");
11
- }
@@ -1,152 +0,0 @@
1
- require 'cgi'
2
-
3
- module Cucumber
4
- module Formatters
5
- class HtmlFormatter
6
- def initialize(io, step_mother)
7
- @io = io
8
- @step_mother = step_mother
9
- @errors = []
10
- @scenario_table_header = []
11
- end
12
-
13
- def visit_features(features)
14
- # IMPORTANT NOTICE ABOUT JQUERY BELOW. THE ORIGINAL BACKSLASHES (\) HAVE
15
- # BEEN REPLACED BY DOUBLE BACKSLASHES (\\) IN THIS FILE TO MAKE SURE THEY
16
- # ARE PRINTED PROPERLY WITH ONLY ONE BACKSLASH (\).
17
- @io.puts(<<-HTML)
18
- <?xml version="1.0" encoding="UTF-8"?>
19
- <!DOCTYPE html
20
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
21
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
22
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
23
- <head>
24
- <title>#{Cucumber.language['feature']}</title>
25
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
26
- <meta http-equiv="Expires" content="-1" />
27
- <meta http-equiv="Pragma" content="no-cache" />
28
- <script type="text/javascript">
29
- #{IO.read(File.dirname(__FILE__) + '/jquery.js')}
30
- #{IO.read(File.dirname(__FILE__) + '/cucumber.js')}
31
- </script>
32
- <style>
33
- #{IO.read(File.dirname(__FILE__) + '/cucumber.css')}
34
- </style>
35
- </head>
36
- <body>
37
- <div id="container">
38
- HTML
39
- features.accept(self)
40
- @io.puts %{ </div>}
41
- end
42
-
43
- def visit_feature(feature)
44
- @io.puts %{ <dl class="feature new">}
45
- feature.accept(self)
46
- @io.puts %{ </dd>}
47
- @io.puts %{ </dl>}
48
- end
49
-
50
- def visit_header(header)
51
- header = header.gsub(/\n/, "<br />\n")
52
- @io.puts %{ <dt>#{header}}
53
- @io.puts %{ </dt>}
54
- @io.puts %{ <dd>}
55
- end
56
-
57
- def visit_regular_scenario(scenario)
58
- visit_scenario(scenario, Cucumber.language['scenario'])
59
- end
60
-
61
- def visit_scenario_outline(scenario)
62
- visit_scenario(scenario, Cucumber.language['scenario_outline'])
63
- end
64
-
65
- def visit_row_scenario(scenario)
66
- @io.puts %{ <dl class="new">}
67
- @io.puts %{ <dt>#{Cucumber.language['scenario']}: #{scenario.name}</dt>}
68
- @io.puts %{ <dd>}
69
- @io.puts %{ <table cellpadding="3">}
70
- @io.puts %{ <thead>}
71
- @io.puts %{ <tr>}
72
- @scenario_table_header.each do |column_header|
73
- @io.puts %{ <th>#{column_header}</th>}
74
- end
75
- @io.puts %{ </tr>}
76
- @io.puts %{ </thead>}
77
- @io.puts %{ <tbody>}
78
- scenario.accept(self)
79
- @io.puts %{ </tbody>}
80
- @io.puts %{ </table>}
81
- @io.puts %{ </dd>}
82
- @io.puts %{ </dl>}
83
- end
84
-
85
- def visit_row_step(step)
86
- _, args, _ = step.regexp_args_proc(@step_mother)
87
- args = step.visible_args if step.outline?
88
- args.each do |arg|
89
- @io.puts %{ <td id="#{step.id}"><span>#{arg}</span></td>}
90
- end
91
- end
92
-
93
- def visit_regular_step(step)
94
- regexp, _, _ = step.regexp_args_proc(@step_mother)
95
- @io.puts %{ <li class="new" id="#{step.id}">#{step.keyword} #{step.format(regexp, '<span>%s</span>')}</li>}
96
- end
97
-
98
- def visit_step_outline(step)
99
- regexp, _, _ = step.regexp_args_proc(@step_mother)
100
- @io.puts %{ <li class="new" id="#{step.id}">#{step.keyword} #{CGI.escapeHTML(step.format(nil))}</li>}
101
- end
102
-
103
- def step_passed(step, regexp, args)
104
- print_javascript_tag("stepPassed(#{step.id})")
105
- end
106
-
107
- def step_failed(step, regexp, args)
108
- @errors << step.error
109
- print_javascript_tag("stepFailed(#{step.id}, #{step.error.message.inspect}, #{step.error.backtrace.join("\n").inspect})")
110
- end
111
-
112
- def step_pending(step, regexp, args)
113
- print_javascript_tag("stepPending(#{step.id})")
114
- end
115
-
116
- def step_skipped(step, regexp, args)
117
- # noop
118
- end
119
-
120
- def step_traced(step, regexp, args)
121
- # noop
122
- end
123
-
124
- def print_javascript_tag(js)
125
- @io.puts %{ <script type="text/javascript">#{js}</script>}
126
- end
127
-
128
- def dump
129
- @io.puts <<-HTML
130
- </body>
131
- </html>
132
- HTML
133
- @io.flush
134
- end
135
-
136
- private
137
-
138
- def visit_scenario(scenario, scenario_or_scenario_outline_keyword)
139
- @scenario_table_header = scenario.table_header
140
- @io.puts %{ <dl class="new">}
141
- @io.puts %{ <dt>#{scenario_or_scenario_outline_keyword}: #{scenario.name}</dt>}
142
- @io.puts %{ <dd>}
143
- @io.puts %{ <ul>}
144
- scenario.accept(self)
145
- @io.puts %{ </ul>}
146
- @io.puts %{ </dd>}
147
- @io.puts %{ </dl>}
148
- end
149
-
150
- end
151
- end
152
- end