report_builder 1.8 → 1.9
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 +5 -5
- data/CHANGELOG.md +6 -1
- data/README.md +0 -7
- data/bin/report_builder +3 -2
- data/lib/report_builder/builder.rb +11 -6
- data/report_builder.gemspec +3 -3
- data/template/error.erb +5 -5
- data/template/feature.erb +5 -7
- data/template/footer.erb +1 -1
- data/template/head.erb +1 -1
- data/template/summary.erb +6 -0
- data/template/summary_row.erb +12 -2
- metadata +16 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0aa1ff8b4caff189599fe6e76c52a49c43dbdbd47d8e099ab9aa81055d0703cd
|
4
|
+
data.tar.gz: 3e1fbfed2f713b8319b1fa01e3a9ab9d3fabdf80a48e00c64d8fd7c48019c614
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57bff744c235ba470d960f116eb5d28883e224d0d72910012e5264e24ae0c51e68618366255746bc07803aa7d934b55667e4b3df9bc6c1b9a66b523d171c4cef
|
7
|
+
data.tar.gz: b9cf16c68a1fd6e92c97f037f2dd55ccbb321fda0574e5fef651702982939758c786d8f60da6f5d884ed9d682fd17327716eedf10a50d6c5ea13ba266305f3dc
|
data/CHANGELOG.md
CHANGED
@@ -3,8 +3,13 @@ All notable changes to this project will be documented in this file.
|
|
3
3
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
5
5
|
|
6
|
-
## [Unreleased](https://github.com/rajatthareja/ReportBuilder/compare/v1.
|
6
|
+
## [Unreleased](https://github.com/rajatthareja/ReportBuilder/compare/v1.9...master)
|
7
7
|
|
8
|
+
## [1.9](https://github.com/rajatthareja/ReportBuilder/compare/v1.8...v1.9) - 2020-06-06
|
9
|
+
### Changed
|
10
|
+
- Json 1.8.1 to 2.3.0
|
11
|
+
- Include last fail run instead of first
|
12
|
+
- [Few other small changes](https://github.com/rajatthareja/ReportBuilder/compare/v1.8...v1.9)
|
8
13
|
|
9
14
|
## [1.8](https://github.com/rajatthareja/ReportBuilder/compare/v1.7...v1.8) - 2018-09-02
|
10
15
|
### Fixed
|
data/README.md
CHANGED
@@ -175,13 +175,6 @@ Use voice commands for easy navigation and search
|
|
175
175
|
|
176
176
|
We're open to any contribution. It has to be tested properly though.
|
177
177
|
|
178
|
-
## Collaborators
|
179
|
-
|
180
|
-
* [Rajat Thareja](https://rajatthareja.com)
|
181
|
-
* [Justin Commu](https://github.com/tk8817)
|
182
|
-
* [Eric Kessler](https://github.com/enkessler)
|
183
|
-
* [Jeff Morgan](https://github.com/cheezy)
|
184
|
-
|
185
178
|
## License
|
186
179
|
|
187
180
|
Copyright (c) 2017 [MIT LICENSE](LICENSE)
|
data/bin/report_builder
CHANGED
@@ -37,7 +37,7 @@ opt_parser = OptionParser.new do |opts|
|
|
37
37
|
options[:include_images] = include_images
|
38
38
|
end
|
39
39
|
|
40
|
-
opts.on('
|
40
|
+
opts.on('--voice_commands', 'Enable voice commands for easy navigation and search') do |voice_commands|
|
41
41
|
options[:voice_commands] = voice_commands
|
42
42
|
end
|
43
43
|
|
@@ -50,8 +50,9 @@ opt_parser = OptionParser.new do |opts|
|
|
50
50
|
end
|
51
51
|
|
52
52
|
opts.on('-I', '--info a:x,b:y,c:z', Array, 'List of additional info') do |list|
|
53
|
+
options[:additional_info] = { }
|
53
54
|
list.each do |i|
|
54
|
-
key, value = i.split(':')
|
55
|
+
key, value = i.split(':', 2)
|
55
56
|
options[:additional_info][key] = value
|
56
57
|
end
|
57
58
|
end
|
@@ -39,7 +39,7 @@ module ReportBuilder
|
|
39
39
|
html_report_path = options[:html_report_path] || options[:report_path]
|
40
40
|
if options[:report_types].include? 'HTML'
|
41
41
|
File.open(html_report_path + '.html', 'w') do |file|
|
42
|
-
file.write get(groups.size > 1 ? 'group_report' : 'report').result(binding)
|
42
|
+
file.write get(groups.size > 1 ? 'group_report' : 'report').result(binding)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -73,13 +73,17 @@ module ReportBuilder
|
|
73
73
|
input_path.each do |group_name, group_path|
|
74
74
|
files = get_files group_path
|
75
75
|
puts "Error:: No file(s) found at #{group_path}" if files.empty?
|
76
|
-
groups << {'name' => group_name, 'features' => get_features(files)}
|
76
|
+
groups << {'name' => group_name, 'features' => get_features(files)}
|
77
77
|
end
|
78
|
-
raise 'Error:: Invalid Input File(s). Please provide valid cucumber JSON output file(s)' if groups.empty?
|
79
78
|
else
|
80
79
|
files = get_files input_path
|
81
80
|
raise "Error:: No file(s) found at #{input_path}" if files.empty?
|
82
|
-
groups << {'features' => get_features(files)}
|
81
|
+
groups << {'features' => get_features(files)}
|
82
|
+
end
|
83
|
+
groups.each do |this_group|
|
84
|
+
this_group['features'].each do |feature|
|
85
|
+
feature['elements'] = feature['elements'].sort_by { |v| v['line']}
|
86
|
+
end
|
83
87
|
end
|
84
88
|
groups
|
85
89
|
end
|
@@ -116,6 +120,7 @@ module ReportBuilder
|
|
116
120
|
features << JSON.parse(data)
|
117
121
|
rescue StandardError
|
118
122
|
puts 'Warning:: Invalid Input File ' + file
|
123
|
+
puts 'JSON Error:: ' + $!.to_s
|
119
124
|
next
|
120
125
|
end
|
121
126
|
end.flatten.group_by do |feature|
|
@@ -190,11 +195,11 @@ module ReportBuilder
|
|
190
195
|
scenario.merge! 'status' => scenario_status(scenario), 'duration' => total_time(scenario['before']) + total_time(scenario['steps']) + total_time(scenario['after'])
|
191
196
|
end
|
192
197
|
feature['elements'] = feature['elements'].group_by do |scenario|
|
193
|
-
scenario['id'] + scenario['line'].to_s
|
198
|
+
scenario['id'] + ':' + scenario['line'].to_s
|
194
199
|
end.values.map do |scenario_group|
|
195
200
|
the_scenario = scenario_group.find do |scenario|
|
196
201
|
scenario['status'] == 'passed'
|
197
|
-
end || scenario_group.
|
202
|
+
end || scenario_group.last
|
198
203
|
if scenario_group.size > 1
|
199
204
|
the_scenario['name'] += " (x#{scenario_group.size})"
|
200
205
|
end
|
data/report_builder.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'report_builder'
|
3
|
-
s.version = '1.
|
3
|
+
s.version = '1.9'
|
4
4
|
s.bindir = 'bin'
|
5
5
|
s.summary = 'ReportBuilder'
|
6
6
|
s.description = 'Ruby gem to merge Cucumber JSON reports and build mobile-friendly HTML Test Report, JSON report and retry file.'
|
@@ -9,14 +9,14 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.email = 'rajat.thareja.1990@gmail.com'
|
10
10
|
s.homepage = 'https://reportbuilder.rajatthareja.com'
|
11
11
|
s.license = 'MIT'
|
12
|
-
s.required_ruby_version = '>=
|
12
|
+
s.required_ruby_version = '>= 2.0.0'
|
13
13
|
s.requirements << 'Cucumber >= 2.1.0 test results in JSON format'
|
14
14
|
|
15
15
|
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(sample/|css/|js/|pkg/|testing/|coverage/|CNAME|.gitignore|appveyor.yml|.travis.yml|_config.yml|Gemfile|Rakefile|rb.ico)}) }
|
16
16
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
17
|
s.test_files = s.files.grep(%r{^(testing)/})
|
18
18
|
|
19
|
-
s.add_runtime_dependency 'json', '>=
|
19
|
+
s.add_runtime_dependency 'json', '>= 2.3.0'
|
20
20
|
|
21
21
|
s.add_development_dependency 'rake', '< 13.0'
|
22
22
|
s.add_development_dependency 'rspec', '< 4.0'
|
data/template/error.erb
CHANGED
@@ -4,18 +4,18 @@
|
|
4
4
|
</div>
|
5
5
|
|
6
6
|
<div class="collapsible-body <%= options[:color] %> lighten-4">
|
7
|
-
<
|
7
|
+
<div class="collection failedScenarioList">
|
8
8
|
<% features.each_with_index do |feature, f| %>
|
9
9
|
<% feature['elements'].each_with_index do |scenario, s| %>
|
10
10
|
<% if scenario['error'] %>
|
11
11
|
<% if scenario['error'] == error %>
|
12
|
-
<
|
13
|
-
<i class="material-icons">highlight_off</i> 
|
14
|
-
</
|
12
|
+
<a class="collection-item failedScenario <%= options[:color] %> lighten-5 red-text modal-trigger waves-effect waves-light" href="#<%= "#{gid}f#{f}s#{s}" %>">
|
13
|
+
<i class="material-icons">highlight_off</i> <%= scenario['name'] %>
|
14
|
+
</a>
|
15
15
|
<% end %>
|
16
16
|
<% end %>
|
17
17
|
<% end %>
|
18
18
|
<% end %>
|
19
|
-
</
|
19
|
+
</div>
|
20
20
|
</div>
|
21
21
|
</li>
|
data/template/feature.erb
CHANGED
@@ -5,14 +5,12 @@
|
|
5
5
|
</div>
|
6
6
|
|
7
7
|
<div class="collapsible-body <%= options[:color] %> lighten-4">
|
8
|
-
<
|
8
|
+
<div class="collection scenarioList <%= options[:color] %>">
|
9
9
|
<% feature['elements'].each_with_index do |scenario, s| %>
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
</a>
|
14
|
-
</li>
|
10
|
+
<a class="collection-item scenario modal-trigger waves-effect waves-light white-text <%= scenario['status'] %>" href="#<%= "#{fid}s#{s}" %>">
|
11
|
+
<b><%= scenario['keyword'] %></b> <%= scenario['name'] %> (<%= duration(scenario['duration']) %>)
|
12
|
+
</a>
|
15
13
|
<% end %>
|
16
|
-
</
|
14
|
+
</div>
|
17
15
|
</div>
|
18
16
|
</li>
|
data/template/footer.erb
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
</div>
|
8
8
|
</footer>
|
9
9
|
|
10
|
-
<script type="text/javascript" src="https://cdn.rawgit.com/rajatthareja/ReportBuilder/v1.
|
10
|
+
<script type="text/javascript" src="https://cdn.rawgit.com/rajatthareja/ReportBuilder/v1.9/js/report.builder.min.js"></script>
|
11
11
|
|
12
12
|
<% if options[:voice_commands] %>
|
13
13
|
<script src="//cdnjs.cloudflare.com/ajax/libs/annyang/2.6.0/annyang.min.js"></script>
|
data/template/head.erb
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
9
9
|
<link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet">
|
10
10
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/css/materialize.min.css" media="screen,projection"/>
|
11
|
-
<link href="https://cdn.rawgit.com/rajatthareja/ReportBuilder/v1.
|
11
|
+
<link href="https://cdn.rawgit.com/rajatthareja/ReportBuilder/v1.9/css/report.builder.min.css" rel="stylesheet">
|
12
12
|
|
13
13
|
<% if options[:additional_css] %>
|
14
14
|
<% if options[:additional_css] =~ /^http(|s):\/\/.*\.css$/ %>
|
data/template/summary.erb
CHANGED
data/template/summary_row.erb
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
<%= feature['name'] %>
|
3
3
|
</td>
|
4
4
|
|
5
|
-
<td class="hoverable">
|
6
|
-
|
5
|
+
<td class="hoverable modal-trigger white-text" data-target="<%= sid %>">
|
6
|
+
<%= scenario['name'] %>
|
7
7
|
</td>
|
8
8
|
|
9
9
|
<td class="hide">
|
@@ -18,6 +18,16 @@
|
|
18
18
|
<%= scenario['status'] %>
|
19
19
|
</td>
|
20
20
|
|
21
|
+
<% if options[:tag_filter] %>
|
22
|
+
<td class="hide-on-small-only">
|
23
|
+
<% scenario['tags'].each do |tag| %>
|
24
|
+
<% if tag['name'].match(/#{options[:tag_filter]}/) %>
|
25
|
+
<%= tag['name'] %>
|
26
|
+
<% end %>
|
27
|
+
<% end %>
|
28
|
+
</td>
|
29
|
+
<% end %>
|
30
|
+
|
21
31
|
<td class="hide-on-small-only">
|
22
32
|
<% if scenario['error'] %>
|
23
33
|
<%= scenario['error'] %>
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: report_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.9'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rajat Thareja
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.3.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.3.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - <
|
31
|
+
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '13.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - <
|
38
|
+
- - "<"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - <
|
45
|
+
- - "<"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '4.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - <
|
52
|
+
- - "<"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '4.0'
|
55
55
|
description: Ruby gem to merge Cucumber JSON reports and build mobile-friendly HTML
|
@@ -98,19 +98,18 @@ require_paths:
|
|
98
98
|
- lib
|
99
99
|
required_ruby_version: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 2.0.0
|
104
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
105
|
requirements:
|
106
|
-
- -
|
106
|
+
- - ">="
|
107
107
|
- !ruby/object:Gem::Version
|
108
108
|
version: '0'
|
109
109
|
requirements:
|
110
110
|
- Cucumber >= 2.1.0 test results in JSON format
|
111
|
-
|
112
|
-
|
113
|
-
signing_key:
|
111
|
+
rubygems_version: 3.1.2
|
112
|
+
signing_key:
|
114
113
|
specification_version: 4
|
115
114
|
summary: ReportBuilder
|
116
115
|
test_files: []
|