step-stats 1.0.0 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 61d424ae5998667ece4f012d2a7f420c8c584ecd
4
- data.tar.gz: 8ec140d300de44bd0fe97c6c456ec4944778cfe2
3
+ metadata.gz: b0b40dcd8ccde973c8386edc15bac778404f1641
4
+ data.tar.gz: 1d59f6abb56ca68c4bac7678c601a116bf2dfb34
5
5
  SHA512:
6
- metadata.gz: 9f9c1ef1999c540dbba5315d44acf4acb64b937b35adaa163a4e07eda5ef31130d2e60dc89f4c9c0dcfe681989e7b8cf1ec0e47014a1e74a071d94054a85aeaa
7
- data.tar.gz: 6f668eb11b74e4193abf093b7c239425f308dd594af14d6537e3854616f66b09e00ea311dbd5e5597e54a181f347af51d4b7fc6c9990561b860cc5866b99b906
6
+ metadata.gz: 9e7da7cf78ea7b98ed7cedc5713651f6a76f672f10f1703fb32f2f2c3f94184276f8d7a8fd1cc4eb7a38e384955b802bf2c56f6664bb2a4ace4a28e422e454d9
7
+ data.tar.gz: 3fa5c88d606f423f0982a1eac7535168f456003e52a210d7e52473c39c856fc5a35daee2aafe82c67a7837e9767b5584d533f395d3d2f23b8e11bdabe4633b7d
@@ -0,0 +1,19 @@
1
+ module StepStats
2
+ class ArgsStats < StepStats::Stats
3
+
4
+ def add_stat(step_match, duration, status, location)
5
+ step_number = get_step_number step_match.format_args
6
+ if @stats[step_number].nil?
7
+ @stats[step_number] = Step.new(step_match.format_args, step_match.file_colon_line)
8
+ end
9
+ step_entry = {duration: duration, status: status, location: location}
10
+ @stats[step_number].add step_entry
11
+ end
12
+
13
+ def get_step_number(format_args)
14
+ @steps[format_args] = @step_counter.next!.dup if @steps[format_args].nil?
15
+ @steps[format_args]
16
+ end
17
+
18
+ end
19
+ end
@@ -1,33 +1,41 @@
1
1
  require 'erb'
2
2
  require 'cucumber/formatter/pretty'
3
+ require 'step_stats/args_stats'
3
4
 
4
5
  module StepStats
5
6
  class Formatter < Cucumber::Formatter::Pretty
6
7
  def initialize(step_mother, io, options)
7
8
  @sss = Stats.new
9
+ @sas = StepStats::ArgsStats.new
8
10
  super
9
11
  end
10
12
 
11
13
  def before_step(step)
12
- @start_time = `ruby -e 'puts "%.3f" % Time.now'`.to_f
14
+ @start_time = `date +%s.%N`.to_f
13
15
  super
14
16
  end
15
17
 
16
18
  def before_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background, file_colon_line)
17
- @duration = `ruby -e 'puts "%.3f" % Time.now'`.to_f - @start_time
19
+ @duration = `date +%s.%N`.to_f - @start_time
18
20
  @sss.add_stat(step_match.step_definition,@duration,status,file_colon_line) if @duration > 0 && !step_match.step_definition.nil?
21
+ @sas.add_stat(step_match,@duration,status,file_colon_line) if @duration > 0 && !step_match.step_definition.nil?
19
22
  super
20
23
  end
21
24
 
22
25
  def after_features(*args)
26
+ plot_graph(@sss,@sas)
27
+ super
28
+ end
29
+
30
+ def plot_graph(data1,data2)
23
31
  @path = File.dirname(__FILE__)
24
32
  template = File.read(@path+"/template.erb")
25
- @data = @sss.stats
33
+ @data1 = data1.stats
34
+ @data2 = data2.stats
26
35
  result = ERB.new(template, 0, "", "@html").result(binding)
27
36
  stats_html_file = File.new('tmp/step_stats.html','w')
28
37
  stats_html_file.write(result)
29
38
  stats_html_file.close
30
- super
31
39
  end
32
40
  end
33
41
  end
@@ -8,7 +8,7 @@
8
8
  <td>Min</td>
9
9
  <td>Count</td>
10
10
  </thead>
11
- <% @data.each_with_index do |stat,index| %>
11
+ <% @data1.each_with_index do |stat,index| %>
12
12
  <tr data-durations="<%= ERB::Util.h(stat.to_chart_data) %>" style="cursor: pointer; cursor: hand">
13
13
  <td>
14
14
  <span><%= index+1 %></span>
@@ -30,3 +30,36 @@
30
30
  </tr>
31
31
  <% end %>
32
32
  </table>
33
+ <br><hr><br>
34
+ <table id="all-table" class="data-table table table-hover">
35
+ <thead>
36
+ <td>Step</td>
37
+ <td>Definition</td>
38
+ <td>Avg</td>
39
+ <td>SD</td>
40
+ <td>Max</td>
41
+ <td>Min</td>
42
+ <td>Count</td>
43
+ </thead>
44
+ <% @data2.each_with_index do |stat,index| %>
45
+ <tr data-durations="<%= ERB::Util.h(stat.to_chart_data) %>" style="cursor: pointer; cursor: hand">
46
+ <td>
47
+ <span><%= index+1 %></span>
48
+ <span class="percentage">
49
+ <%= @sas.percent(stat,'floor') %>%
50
+ </span>
51
+ </td>
52
+ <td title="<%= stat.location %>" style="background: -webkit-linear-gradient(left, #DC4141 <%= @sss.percent(stat) %>%, white <%= @sss.percent(stat) %>%);"><%= stat.name %></td>
53
+ <td><%= stat.avg %></td>
54
+ <td><%= stat.stddev %></td>
55
+ <td><%= stat.max %></td>
56
+ <td><%= stat.min %></td>
57
+ <td><%= stat.count %></td>
58
+ </tr>
59
+ <tr>
60
+ <td colspan="7">
61
+ <div id="chart-<%= index+1 %>" class="details_chart">Details</div>
62
+ </td>
63
+ </tr>
64
+ <% end %>
65
+ </table>
@@ -68,15 +68,19 @@
68
68
  <%= ERB.new(File.read(@path+"/table_partial.erb")).result(binding) %>
69
69
  </div>
70
70
  <div role="tabpanel" class="tab-pane" id="top30time">
71
- <% @data = @sss.top30time %>
71
+ <% @data1 = @sss.top30time %>
72
+ <% @data2 = @sas.top30time %>
72
73
  <%= ERB.new(File.read(@path+"/table_partial.erb")).result(binding) %>
73
74
  </div>
74
75
  <div role="tabpanel" class="tab-pane" id="top30count">
75
- <% @data = @sss.top30count %>
76
+ <% @data1 = @sss.top30count %>
77
+ <% @data2 = @sas.top30count %>
76
78
  <%= ERB.new(File.read(@path+"/table_partial.erb")).result(binding) %>
77
79
  </div>
78
80
  <div role="tabpanel" class="tab-pane" id="timeperstep">
79
81
  <span data-results="<%= ERB::Util.h(@sss.to_chart_data) %>"></span>
82
+ <br><hr><br>
83
+ <span data-results="<%= ERB::Util.h(@sas.to_chart_data) %>"></span>
80
84
  <div class="tps_chart"></div>
81
85
  </div>
82
86
  </div>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: step-stats
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sundus Yousuf
@@ -32,6 +32,7 @@ extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
34
  - lib/step-stats.rb
35
+ - lib/step_stats/args_stats.rb
35
36
  - lib/step_stats/stats.rb
36
37
  - lib/step_stats/step.rb
37
38
  - lib/step_stats/step_stats_formatter.rb