report_builder 1.1 → 1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/bin/report_builder +1 -1
- data/lib/report_builder/builder.rb +36 -4
- data/report_builder.gemspec +1 -1
- data/template/html_report.erb +13 -15
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9863bb61c867e174d7eb72a11753742b4d8ffaa
|
4
|
+
data.tar.gz: 1d2fc605738472f645bda76e01ecd72bd6f33687
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20491fa5730f4bd28ce944b5d4a6b7ae44cfb2ac1469d62aa6990564f0888736f934bb8235a8facab8f7594f275074fc8c1afff36d7463a9f59b3c76c8eb1a1e
|
7
|
+
data.tar.gz: 773c9a288a135acbecf724aa8997668e7f4069f819aa541945b9e193c393a3f46e8b77c91c0accc15734c4eb02fc70d8d502329de331d1488b7f00dd237c254e
|
data/README.md
CHANGED
@@ -77,7 +77,7 @@ gem install report_builder
|
|
77
77
|
| --html_out | [PATH]NAME | Same as the -o option but will only apply the html report format |
|
78
78
|
| --retry_out | [PATH]NAME | Same as the -o option but will only apply the retry report format |
|
79
79
|
| -f, --format | x,y,z | List of report format - html,json,retry |
|
80
|
-
| --[no-]images | | Reduce report size by excluding embedded images
|
80
|
+
| --[no-]images | | Reduce HTML report size by excluding embedded images |
|
81
81
|
| -T, --title | TITLE | Report title |
|
82
82
|
| -I, --info | a:x,b:y,c:z | List of additional info about test - key:value |
|
83
83
|
| -h, --help | | Show available command line switches |
|
data/bin/report_builder
CHANGED
@@ -40,7 +40,7 @@ opt_parser = OptionParser.new do |opts|
|
|
40
40
|
options[:report_types] = list
|
41
41
|
end
|
42
42
|
|
43
|
-
opts.on('--[no-]images', 'Reduce report size by excluding embedded images') do |include_images|
|
43
|
+
opts.on('--[no-]images', 'Reduce HTML report size by excluding embedded images') do |include_images|
|
44
44
|
options[:include_images] = include_images
|
45
45
|
end
|
46
46
|
|
@@ -55,10 +55,6 @@ module ReportBuilder
|
|
55
55
|
)
|
56
56
|
end
|
57
57
|
|
58
|
-
def decode(data)
|
59
|
-
(Base64.decode64(data) rescue data).gsub(/^data:image\/(png|gif|jpg|jpeg)\;base64,/, '')
|
60
|
-
end
|
61
|
-
|
62
58
|
private
|
63
59
|
|
64
60
|
def get_files(path)
|
@@ -121,13 +117,22 @@ module ReportBuilder
|
|
121
117
|
after['result']['duration'] ||= 0
|
122
118
|
duration += after['result']['duration']
|
123
119
|
status = 'failed' if after['result']['status'] == 'failed'
|
120
|
+
after['embeddings'].map! { |embedding|
|
121
|
+
decode_embedding(embedding)
|
122
|
+
} if after['embeddings']
|
124
123
|
after.merge! 'status' => after['result']['status'], 'duration' => after['result']['duration']
|
125
124
|
} if step['after']
|
125
|
+
step['embeddings'].map! { |embedding|
|
126
|
+
decode_embedding(embedding)
|
127
|
+
} if step['embeddings']
|
126
128
|
step.merge! 'status' => status, 'duration' => duration
|
127
129
|
}
|
128
130
|
scenario['after'] ||= []
|
129
131
|
scenario['after'].each {|after|
|
130
132
|
after['result']['duration'] ||= 0
|
133
|
+
after['embeddings'].map! { |embedding|
|
134
|
+
decode_embedding(embedding)
|
135
|
+
} if after['embeddings']
|
131
136
|
after.merge! 'status' => after['result']['status'], 'duration' => after['result']['duration']
|
132
137
|
}
|
133
138
|
scenario.merge! 'status' => scenario_status(scenario), 'duration' => total_time(scenario['before']) + total_time(scenario['steps']) + total_time(scenario['after'])
|
@@ -154,6 +159,33 @@ module ReportBuilder
|
|
154
159
|
'passed'
|
155
160
|
end
|
156
161
|
|
162
|
+
def decode_image(data)
|
163
|
+
base64 = /^([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/]{4}|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==)$/
|
164
|
+
if data =~ base64
|
165
|
+
data_base64 = Base64.decode64(data).gsub(/^data:image\/(png|gif|jpg|jpeg)\;base64,/, '')
|
166
|
+
if data_base64 =~ base64
|
167
|
+
data_base64
|
168
|
+
else
|
169
|
+
data
|
170
|
+
end
|
171
|
+
else
|
172
|
+
''
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
def decode_text(data)
|
177
|
+
Base64.decode64 data
|
178
|
+
end
|
179
|
+
|
180
|
+
def decode_embedding(embedding)
|
181
|
+
if embedding['mime_type'] =~ /^image\/(png|gif|jpg|jpeg)/
|
182
|
+
embedding['data'] = decode_image(embedding['data'])
|
183
|
+
elsif embedding['mime_type'] =~ /^text\/plain/
|
184
|
+
embedding['data'] = decode_text(embedding['data'])
|
185
|
+
end
|
186
|
+
embedding
|
187
|
+
end
|
188
|
+
|
157
189
|
def total_time(data)
|
158
190
|
total_time = 0
|
159
191
|
data.each {|item| total_time += item['duration']}
|
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.2'
|
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.'
|
data/template/html_report.erb
CHANGED
@@ -30,6 +30,7 @@
|
|
30
30
|
<%end%>
|
31
31
|
|
32
32
|
<h5><%=scenario['name']%></h5>
|
33
|
+
<%=feature['uri']%>:<%=scenario['line']%>
|
33
34
|
|
34
35
|
<%if scenario['before']%>
|
35
36
|
<%scenario['before'].each do |before|%>
|
@@ -99,16 +100,15 @@
|
|
99
100
|
|
100
101
|
<%if step['embeddings']%>
|
101
102
|
<%step['embeddings'].each do |embedding|%>
|
102
|
-
<%data=decode(embedding['data'])%>
|
103
103
|
<%if embedding['mime_type'] =~ /^image\/(png|gif|jpg|jpeg)/ %>
|
104
104
|
<%if options[:include_images]%>
|
105
|
-
<img class="materialboxed" data-caption='<%=scenario['name']%>' width="250" src="data:<%=embedding['mime_type']%>;base64,<%=data%>">
|
105
|
+
<img class="materialboxed" data-caption='<%=scenario['name']%>' width="250" src="data:<%=embedding['mime_type']%>;base64,<%=embedding['data']%>">
|
106
106
|
<%end%>
|
107
107
|
<%elsif embedding['mime_type'] =~ /^text\/plain/%>
|
108
|
-
<%if data.include?('|||')%>
|
109
|
-
<%title, link =
|
108
|
+
<%if embedding['data'].include?('|||')%>
|
109
|
+
<%title, link = embedding['data'].split('|||')%><a href="<%=link%>"><%=title%></a>
|
110
110
|
<%else%>
|
111
|
-
|
111
|
+
<%=embedding['data']%>
|
112
112
|
<%end%>
|
113
113
|
<%end%>
|
114
114
|
<%end%>
|
@@ -129,16 +129,15 @@
|
|
129
129
|
|
130
130
|
<%if after['embeddings']%>
|
131
131
|
<%after['embeddings'].each do |embedding|%>
|
132
|
-
<%data=decode(embedding['data'])%>
|
133
132
|
<%if embedding['mime_type'] =~ /^image\/(png|gif|jpg|jpeg)/ %>
|
134
133
|
<%if options[:include_images]%>
|
135
|
-
<img class="materialboxed" data-caption='<%=scenario['name']%>' width="250" src="data:<%=embedding['mime_type']%>;base64,<%=data%>">
|
134
|
+
<img class="materialboxed" data-caption='<%=scenario['name']%>' width="250" src="data:<%=embedding['mime_type']%>;base64,<%=embedding['data']%>">
|
136
135
|
<%end%>
|
137
136
|
<%elsif embedding['mime_type'] =~ /^text\/plain/%>
|
138
|
-
<%if data.include?('|||')%>
|
139
|
-
<%title, link =
|
137
|
+
<%if embedding['data'].include?('|||')%>
|
138
|
+
<%title, link = embedding['data'].split('|||')%><a href="<%=link%>"><%=title%></a>
|
140
139
|
<%else%>
|
141
|
-
|
140
|
+
<%=embedding['data']%>
|
142
141
|
<%end%>
|
143
142
|
<%end%>
|
144
143
|
<%end%>
|
@@ -165,16 +164,15 @@
|
|
165
164
|
|
166
165
|
<%if after['embeddings']%>
|
167
166
|
<%after['embeddings'].each do |embedding|%>
|
168
|
-
<%data=decode(embedding['data'])%>
|
169
167
|
<%if embedding['mime_type'] =~ /^image\/(png|gif|jpg|jpeg)/ %>
|
170
168
|
<%if options[:include_images]%>
|
171
|
-
<img class="materialboxed" data-caption='<%=scenario['name']%>' width="250" src="data:<%=embedding['mime_type']%>;base64,<%=data%>">
|
169
|
+
<img class="materialboxed" data-caption='<%=scenario['name']%>' width="250" src="data:<%=embedding['mime_type']%>;base64,<%=embedding['data']%>">
|
172
170
|
<%end%>
|
173
171
|
<%elsif embedding['mime_type'] =~ /^text\/plain/%>
|
174
|
-
<%if data.include?('|||')%>
|
175
|
-
<%title, link =
|
172
|
+
<%if embedding['data'].include?('|||')%>
|
173
|
+
<%title, link = embedding['data'].split('|||')%><a href="<%=link%>"><%=title%></a>
|
176
174
|
<%else%>
|
177
|
-
|
175
|
+
<%=embedding['data']%>
|
178
176
|
<%end%>
|
179
177
|
<%end%>
|
180
178
|
<%end%>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: report_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rajat Thareja
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10-
|
11
|
+
date: 2017-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|