step-stats 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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