ugly_face 0.6 → 0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: df49f3d36e3bbbffc191e0abdc6161cc97879d17
4
- data.tar.gz: 731e3060420000df718a44e9e9b2c71fd0442427
3
+ metadata.gz: cdf4fc5ccf459f35aca03dc831d12c9bd2f3a884
4
+ data.tar.gz: b7d131c14ecb22f37924ef2eb5959be2587b854d
5
5
  SHA512:
6
- metadata.gz: 20c48a5736b927d912f4c92a0f830fec8b97fa9dce2cb2f50d032c65e3feec8aef7340cbbc2399cdbfb2bcdb290be65f4d4ec2ec2d7f346b91a07e57585eca0f
7
- data.tar.gz: 14a0546143133e9335a8306ef10b1c88e0f24757427aef387a160c00ec46f855bcce00c074bc00f0b246405aca6ccd16a6cb6c23b741ebf51f3d3f9ce158f620
6
+ metadata.gz: d57818da887edc12eb0ff9118c683b3febf6dba41a93d4de43956234e117726fffaa8b2ee49f732d71bf154d6f501e05cf42df354acfe7c2dc762ecd28ea5fd7
7
+ data.tar.gz: 0f4aec1c103918f6ecaa2b06e91a69f70b03af27e476706196961783d87d6409e3d3f71589b4231842a379292c7f3c2c7586175f47fc225f63afb4cce80c6f94
data/ChangeLog CHANGED
@@ -1,5 +1,8 @@
1
- === Release 0.6 / 2015-11-20
2
- Made the library public friendly. Added support for showing ENV vars in main header & adding debug data to scenarios.
1
+ === Release 0.7 / 2015-11-28
2
+ Added Cucumber 2.0 support
3
+
4
+ === Release 0.6 / 2015-11-28
5
+ Made the library public friendly. Added support for showing ENV vars in main header & adding debug data to scenarios.
3
6
 
4
7
  === Release 0.5 / 2015-11-20
5
8
  Updated Main ENV var panel
Binary file
@@ -2,10 +2,8 @@ require 'action_view'
2
2
  require 'fileutils'
3
3
  require 'cucumber/formatter/io'
4
4
  require 'cucumber/formatter/duration'
5
- require 'cucumber/formatter/console'
6
- require 'cucumber/ast/scenario'
7
- require 'cucumber/ast/table'
8
- require 'cucumber/ast/outline_table'
5
+ require 'cucumber/core/ast/scenario'
6
+ require 'cucumber/multiline_argument/data_table'
9
7
  require File.join(File.dirname(__FILE__), 'view_helper')
10
8
  require File.join(File.dirname(__FILE__), 'report')
11
9
 
@@ -19,7 +17,6 @@ module UglyFace
19
17
  class Html
20
18
  include Cucumber::Formatter::Io
21
19
  include Cucumber::Formatter::Duration
22
- include Cucumber::Formatter::Console
23
20
  include ViewHelper
24
21
 
25
22
  attr_reader :report, :logo
@@ -90,18 +87,19 @@ module UglyFace
90
87
  end
91
88
 
92
89
  def before_feature_element(feature_element)
93
- unless scenario_outline? feature_element
90
+ # unless scenario_outline? feature_element
94
91
  @report.add_scenario ReportScenario.new(feature_element)
95
- end
92
+ # end
96
93
  end
97
94
 
98
95
  def after_feature_element(feature_element)
99
- unless scenario_outline?(feature_element)
96
+ # unless scenario_outline?(feature_element)
100
97
  process_scenario(feature_element)
101
- end
98
+ # end
102
99
  end
103
100
 
104
101
  def before_table_row(example_row)
102
+ @before_example_row = example_row
105
103
  @report.add_scenario ReportScenario.new(example_row) unless info_row?(example_row)
106
104
  end
107
105
 
@@ -110,7 +108,7 @@ module UglyFace
110
108
  @report.current_scenario.populate(example_row)
111
109
  build_scenario_outline_steps(example_row)
112
110
  end
113
- populate_cells(example_row) if example_row.instance_of? Cucumber::Ast::Table::Cells
111
+ populate_cells(example_row) if example_row.instance_of? Cucumber::Core::Ast::DataTable
114
112
  end
115
113
 
116
114
  def before_step(step)
@@ -237,7 +235,7 @@ module UglyFace
237
235
  report_step = ReportStep.new(step)
238
236
  report_step.duration = duration
239
237
  report_step.status = status unless status.nil?
240
- if step.background?
238
+ if step.background
241
239
  @report.current_feature.background << report_step if @report.processing_background_steps?
242
240
  else
243
241
  @report.add_step report_step
@@ -246,12 +244,12 @@ module UglyFace
246
244
  end
247
245
 
248
246
  def scenario_outline?(feature_element)
249
- feature_element.is_a? Cucumber::Ast::ScenarioOutline
247
+ feature_element.is_a? Cucumber::Core::Ast::ScenarioOutline
250
248
  end
251
249
 
252
250
  def info_row?(example_row)
253
251
  return example_row.scenario_outline.nil? if example_row.respond_to? :scenario_outline
254
- return true if example_row.instance_of? Cucumber::Ast::Table::Cells
252
+ return true if example_row.instance_of? Cucumber::Formatter::LegacyApi::Ast::DataTableRow
255
253
  false
256
254
  end
257
255
 
@@ -261,12 +259,15 @@ module UglyFace
261
259
  end
262
260
 
263
261
  def build_scenario_outline_steps(example_row)
264
- si = example_row.instance_variable_get :@step_invocations
262
+ si = example_row.cells
265
263
  si.each do |row|
266
- process_step(row, row.status)
264
+ duration = Time.now - @step_timer
265
+ report_step = ReportStep.new(@before_example_row, example_row)
266
+ report_step.duration = duration
267
+ @report.add_step report_step
268
+ # process_step(row, row.status)
267
269
  end
268
270
  end
269
-
270
271
  def step_error(exception)
271
272
  return nil if exception.nil?
272
273
  exception.backtrace[-1] =~ /^#{step.file_colon_line}/ ? exception : nil
@@ -130,13 +130,15 @@ module UglyFace
130
130
  end
131
131
 
132
132
  def scenario_average_duration
133
- durations = scenarios.collect { |scenario| scenario.duration }
133
+ has_duration = scenarios.reject { |scenario| scenario.duration.nil? }
134
+ durations = has_duration.collect { |scenario| scenario.duration }
134
135
  formatted_duration(durations.reduce(:+).to_f / durations.size)
135
136
  end
136
137
 
137
138
  def step_average_duration
138
139
  steps = scenarios.collect { |scenario| scenario.steps }
139
- durations = steps.flatten.collect { |step| step.duration }
140
+ has_duration = steps.flatten.reject { |step| step.duration.nil? }
141
+ durations = has_duration.collect { |step| step.duration }
140
142
  formatted_duration(durations.reduce(:+).to_f / durations.size)
141
143
  end
142
144
 
@@ -174,14 +176,14 @@ module UglyFace
174
176
 
175
177
  def populate(scenario)
176
178
  @duration = Time.now - @start
177
- if scenario.instance_of? Cucumber::Ast::Scenario
179
+ @status = scenario.status
180
+ if scenario.instance_of? Cucumber::Formatter::LegacyApi::Ast::Scenario
181
+ @name = scenario.name
182
+ @file_colon_line = scenario.line
183
+ elsif scenario.instance_of? Cucumber::Formatter::LegacyApi::Ast::ExampleTableRow
178
184
  @name = scenario.name
179
- @file_colon_line = scenario.file_colon_line
180
- elsif scenario.instance_of? Cucumber::Ast::OutlineTable::ExampleRow
181
- @name = scenario.scenario_outline.name
182
- @file_colon_line = scenario.backtrace_line
185
+ @file_colon_line = scenario.line
183
186
  end
184
- @status = scenario.status
185
187
  end
186
188
 
187
189
  def has_image?
@@ -192,19 +194,22 @@ module UglyFace
192
194
  class ReportStep
193
195
  attr_accessor :name, :keyword, :file_colon_line, :status, :duration, :table, :multiline_arg, :error
194
196
 
195
- def initialize(step)
196
- @name = step.name
197
- @file_colon_line = step.file_colon_line
198
- unless step.instance_of? Cucumber::Ast::Background
199
- if step.respond_to? :actual_keyword
200
- @keyword = step.actual_keyword
201
- else
197
+ def initialize(step, ast_step=nil)
198
+ if ast_step
199
+ @name = ast_step.name
200
+ @keyword = ast_step.keyword
201
+ @status = ast_step.status
202
+ @error = ast_step.exception
203
+ else
204
+ @name = step.name
205
+ unless step.instance_of? Cucumber::Formatter::LegacyApi::Ast::Background
202
206
  @keyword = step.keyword
207
+ @status = step.status
208
+ @multiline_arg = step.multiline_arg unless step.multiline_arg.instance_of? Cucumber::Core::Ast::EmptyMultilineArgument
209
+ @error = step.exception
203
210
  end
204
- @status = step.status
205
- @multiline_arg = step.multiline_arg
206
- @error = step.exception
207
211
  end
212
+ @file_colon_line = step.file_colon_line
208
213
  end
209
214
 
210
215
  def failed_with_error?
@@ -249,7 +254,7 @@ module UglyFace
249
254
  end
250
255
 
251
256
  def snippet_for(error_line)
252
- file, line = file_name_and_line(error_line)
257
+ file, line = file_name_and_line(error_line)
253
258
  if file
254
259
  [lines_around(file, line), line, file]
255
260
  else
@@ -1,4 +1,4 @@
1
- require 'cucumber/ast/scenario_outline'
1
+ require 'cucumber/core/ast/scenario_outline'
2
2
 
3
3
  module UglyFace
4
4
  module Formatter
@@ -23,13 +23,15 @@ module UglyFace
23
23
  def step_average_duration(features)
24
24
  scenarios = features.collect { |feature| feature.scenarios }
25
25
  steps = scenarios.flatten.collect { |scenario| scenario.steps }
26
- durations = steps.flatten.collect { |step| step.duration }
26
+ has_duration = steps.flatten.reject { |step| step.duration.nil? }
27
+ durations = has_duration.collect { |step| step.duration }
27
28
  format_duration get_average_from_float_array durations
28
29
  end
29
30
 
30
31
  def scenario_average_duration(features)
31
32
  scenarios = features.collect { |feature| feature.scenarios }
32
- durations = scenarios.flatten.collect { |scenario| scenario.duration }
33
+ has_duration = scenarios.flatten.reject { |scenario| scenario.duration.nil? }
34
+ durations = has_duration.collect { |scenario| scenario.duration }
33
35
  format_duration get_average_from_float_array durations
34
36
  end
35
37
 
@@ -24,16 +24,21 @@
24
24
  </table>
25
25
  <% end %>
26
26
  <% if step.failed_with_error? %>
27
- <table>
28
- <tr class="error">
29
- <td class="message">
30
- <strong><pre><%= "#{step.error.message} (#{step.error.class})" %></pre></strong>
31
- </td>
32
- </tr>
33
- <tr>
34
- <td>
35
- <%= raw(step.extra_failure_content(step.error.backtrace)) %>
36
- </td>
37
- </tr>
38
- </table>
27
+ <table>
28
+ <tr class="error">
29
+ <td class="message">
30
+ <strong><pre><%= "#{step.error.message} (#{step.error.class})" %></pre></strong>
31
+ </td>
32
+ </tr>
33
+ <tr>
34
+ <td>
35
+ <%= raw(step.extra_failure_content(step.error.backtrace)) %>
36
+ </td>
37
+ </tr>
38
+ <tr >
39
+ <td class="detail">
40
+ <pre><%= step.error.backtrace.join("\n") %></pre>
41
+ </td>
42
+ </tr>
43
+ </table>
39
44
  <% end %>
@@ -1,3 +1,3 @@
1
1
  module UglyFace
2
- VERSION = "0.6"
2
+ VERSION = "0.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ugly_face
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.6'
4
+ version: '0.7'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Commmu