rspec_pretty_html_reporter 1.1.1 → 1.1.2
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19e2385411126f381ee6200d7355751a730acda12387aadf622c129be11a0c0d
|
4
|
+
data.tar.gz: 49c8601dbd91f42b5f25debe6c501d3770260416b9502190ad0c51e01c1e0b53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c53a7027d3f170a25ac9cb3290944b9939197acf3207ae4929c28026f4bf998b6f0e8eaa8090b92fb7682e9876d630b5f838bf5801f5fc4a1a495d2abb0fa23f
|
7
|
+
data.tar.gz: 28aad8ae1532df88d43fae0ee76d6d68acbadaee57573c586c50a48bdc44f0306d0f526b6c7edfd5b584554def289544d8516090a00c4dc36d03def57d4a682a
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'rspec_pretty_html_reporter/oopsy'
|
2
2
|
|
3
|
+
# Processes the array of example information for all of the example group that has been run
|
3
4
|
class Example
|
4
5
|
def self.load_spec_comments!(examples)
|
5
6
|
examples.group_by(&:file_path).each do |file_path, file_examples|
|
@@ -7,8 +8,8 @@ class Example
|
|
7
8
|
|
8
9
|
file_examples.zip(file_examples.rotate).each do |ex, next_ex|
|
9
10
|
lexically_next = next_ex &&
|
10
|
-
|
11
|
-
|
11
|
+
next_ex.file_path == ex.file_path &&
|
12
|
+
next_ex.metadata[:line_number] > ex.metadata[:line_number]
|
12
13
|
start_line_idx = ex.metadata[:line_number] - 1
|
13
14
|
next_start_idx = (lexically_next ? next_ex.metadata[:line_number] : lines.size) - 1
|
14
15
|
spec_lines = lines[start_line_idx...next_start_idx].select { |l| l.match(/#->/) }
|
@@ -21,7 +22,6 @@ class Example
|
|
21
22
|
:metadata, :spec, :screenshots, :screenrecord, :failed_screenshot
|
22
23
|
|
23
24
|
def initialize(example)
|
24
|
-
|
25
25
|
@example_group = example.example_group.to_s
|
26
26
|
@description = example.description
|
27
27
|
@full_description = example.full_description
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Helpers
|
4
|
+
|
5
|
+
##
|
6
|
+
# Appends a number to duplicate filename to avoid them being overwritten
|
7
|
+
# by Specs with the same description.
|
8
|
+
#
|
9
|
+
# Renames duplicate filenames for specs that have the same description
|
10
|
+
# @param [String] filename Duplicate filename to rename
|
11
|
+
# @return [String] Renamed filename
|
12
|
+
#
|
13
|
+
def self.rename_duplicate_filename(filename)
|
14
|
+
if File.exist?(filename)
|
15
|
+
base, ext = /\A(.+?)(\.[^.]+)?\Z/.match(filename).to_a[1..]
|
16
|
+
number = 2
|
17
|
+
number += 1 while File.exist?(filename = "#{base}-#{number}#{ext}")
|
18
|
+
end
|
19
|
+
filename
|
20
|
+
end
|
21
|
+
|
22
|
+
##
|
23
|
+
# Appends a number to a duplicate description to avoid them being overwritten
|
24
|
+
# by Specs with the same description.
|
25
|
+
#
|
26
|
+
# Renames duplicate descriptions for specs that have the same description
|
27
|
+
# @param [Hash] group_name Group name to check for duplicate keys
|
28
|
+
# @param [String] description Duplicate description to rename
|
29
|
+
# @return [String] Renamed description
|
30
|
+
#
|
31
|
+
def self.rename_duplicate_description(group_name, description)
|
32
|
+
if group_name.key?(description)
|
33
|
+
number = group_name.select { |k, _v| k.include?(description) }.length
|
34
|
+
description = "#{description}-#{number + 1}"
|
35
|
+
end
|
36
|
+
description
|
37
|
+
end
|
38
|
+
end
|
@@ -6,10 +6,12 @@ require 'active_support/inflector'
|
|
6
6
|
require 'fileutils'
|
7
7
|
require 'erb'
|
8
8
|
require 'rspec_pretty_html_reporter/example'
|
9
|
+
require 'rspec_pretty_html_reporter/helpers'
|
9
10
|
|
10
11
|
I18n.enforce_available_locales = false
|
11
12
|
|
12
13
|
class RspecPrettyHtmlReporter < RSpec::Core::Formatters::BaseFormatter
|
14
|
+
include Helpers
|
13
15
|
DEFAULT_REPORT_PATH = File.join(Bundler.root, 'reports', Time.now.strftime('%Y%m%d-%H%M%S'))
|
14
16
|
REPORT_PATH = ENV['REPORT_PATH'] || DEFAULT_REPORT_PATH
|
15
17
|
|
@@ -48,8 +50,6 @@ class RspecPrettyHtmlReporter < RSpec::Core::Formatters::BaseFormatter
|
|
48
50
|
end
|
49
51
|
|
50
52
|
def example_passed(notification)
|
51
|
-
# require 'byebug'; byebug
|
52
|
-
|
53
53
|
@group_example_success_count += 1
|
54
54
|
@examples << Example.new(notification.example)
|
55
55
|
end
|
@@ -68,8 +68,9 @@ class RspecPrettyHtmlReporter < RSpec::Core::Formatters::BaseFormatter
|
|
68
68
|
@group_level -= 1
|
69
69
|
|
70
70
|
if @group_level.zero?
|
71
|
+
@filename = Helpers.rename_duplicate_filename("#{REPORT_PATH}/#{notification.group.description.parameterize}.html")
|
71
72
|
|
72
|
-
File.open(
|
73
|
+
File.open(@filename, 'w') do |f|
|
73
74
|
@passed = @group_example_success_count
|
74
75
|
@failed = @group_example_failure_count
|
75
76
|
@pending = @group_example_pending_count
|
@@ -90,7 +91,6 @@ class RspecPrettyHtmlReporter < RSpec::Core::Formatters::BaseFormatter
|
|
90
91
|
|
91
92
|
@total_group_examples = @passed + @failed + @pending
|
92
93
|
|
93
|
-
|
94
94
|
class_map = { passed: 'success', failed: 'danger', pending: 'warning' }
|
95
95
|
statuses = @examples.map(&:status)
|
96
96
|
@status = if statuses.include?('failed')
|
@@ -98,7 +98,8 @@ class RspecPrettyHtmlReporter < RSpec::Core::Formatters::BaseFormatter
|
|
98
98
|
else
|
99
99
|
(statuses.include?('passed') ? 'passed' : 'pending')
|
100
100
|
end
|
101
|
-
@all_groups
|
101
|
+
@spec_description = Helpers.rename_duplicate_description(@all_groups, notification.group.description.parameterize)
|
102
|
+
@all_groups[@spec_description] = {
|
102
103
|
group: notification.group.description,
|
103
104
|
examples: @examples.size,
|
104
105
|
status: @status,
|
@@ -108,8 +109,7 @@ class RspecPrettyHtmlReporter < RSpec::Core::Formatters::BaseFormatter
|
|
108
109
|
pending: statuses.select { |s| s == 'pending' },
|
109
110
|
duration: @summary_duration
|
110
111
|
}
|
111
|
-
|
112
|
-
@example_status = @all_groups[notification.group.description.parameterize][:klass]
|
112
|
+
@example_status = @all_groups[@spec_description][:klass]
|
113
113
|
|
114
114
|
template_file = File.read("#{File.dirname(__FILE__)}/../templates/report.erb")
|
115
115
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec_pretty_html_reporter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carlos Gutierrez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '7.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.3'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.3'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rouge
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,14 +58,14 @@ dependencies:
|
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
61
|
+
version: 3.11.0
|
48
62
|
type: :runtime
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
68
|
+
version: 3.11.0
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: byebug
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +80,34 @@ dependencies:
|
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '11.1'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: capybara
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.36'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.36'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rake
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '13.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '13.0'
|
69
111
|
- !ruby/object:Gem::Dependency
|
70
112
|
name: rdoc
|
71
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +128,14 @@ dependencies:
|
|
86
128
|
requirements:
|
87
129
|
- - "~>"
|
88
130
|
- !ruby/object:Gem::Version
|
89
|
-
version: 3.
|
131
|
+
version: 3.11.0
|
90
132
|
type: :development
|
91
133
|
prerelease: false
|
92
134
|
version_requirements: !ruby/object:Gem::Requirement
|
93
135
|
requirements:
|
94
136
|
- - "~>"
|
95
137
|
- !ruby/object:Gem::Version
|
96
|
-
version: 3.
|
138
|
+
version: 3.11.0
|
97
139
|
- !ruby/object:Gem::Dependency
|
98
140
|
name: turnip
|
99
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,6 +156,20 @@ dependencies:
|
|
114
156
|
- - ">="
|
115
157
|
- !ruby/object:Gem::Version
|
116
158
|
version: 2.0.2
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: webdrivers
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - "~>"
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '5.0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - "~>"
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '5.0'
|
117
173
|
description: A custom reporter for RSpec which generates pretty HTML reports
|
118
174
|
email:
|
119
175
|
- testing@spartan-testsolutions.co.uk
|
@@ -125,6 +181,7 @@ files:
|
|
125
181
|
- README.md
|
126
182
|
- lib/rspec_pretty_html_reporter.rb
|
127
183
|
- lib/rspec_pretty_html_reporter/example.rb
|
184
|
+
- lib/rspec_pretty_html_reporter/helpers.rb
|
128
185
|
- lib/rspec_pretty_html_reporter/oopsy.rb
|
129
186
|
- resources/bootstrap-4.0.0-dist/css/bootstrap.min.css
|
130
187
|
- resources/bootstrap-4.0.0-dist/js/bootstrap.js
|