spectre-core 1.12.4 → 1.13.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 +4 -4
- data/exe/spectre +31 -24
- data/lib/spectre/assertion.rb +38 -38
- data/lib/spectre/async.rb +31 -0
- data/lib/spectre/bag.rb +1 -1
- data/lib/spectre/curl.rb +4 -6
- data/lib/spectre/helpers.rb +4 -0
- data/lib/spectre/http/keystone.rb +0 -2
- data/lib/spectre/http.rb +25 -6
- data/lib/spectre/logger/console.rb +1 -1
- data/lib/spectre/logger/file.rb +19 -19
- data/lib/spectre/logger.rb +37 -10
- data/lib/spectre/mixin.rb +3 -3
- data/lib/spectre/reporter/console.rb +19 -22
- data/lib/spectre/reporter/html.rb +1167 -0
- data/lib/spectre/reporter/junit.rb +24 -21
- data/lib/spectre/reporter/vstest.rb +167 -0
- data/lib/spectre.rb +78 -61
- data/resources/OpenSans-Regular.ttf +0 -0
- data/resources/fa-regular-400.ttf +0 -0
- data/resources/fa-solid-900.ttf +0 -0
- data/resources/spectre_icon.svg +106 -0
- data/resources/vue.global.prod.js +1 -0
- metadata +13 -6
data/lib/spectre/logger.rb
CHANGED
@@ -2,7 +2,7 @@ require_relative '../spectre'
|
|
2
2
|
require 'date'
|
3
3
|
|
4
4
|
module Spectre
|
5
|
-
module
|
5
|
+
module Logging
|
6
6
|
module Status
|
7
7
|
OK = '[ok]'
|
8
8
|
FAILED = '[failed]'
|
@@ -12,6 +12,31 @@ module Spectre
|
|
12
12
|
DEBUG = '[debug]'
|
13
13
|
end
|
14
14
|
|
15
|
+
class ModuleLogger
|
16
|
+
def initialize config, name
|
17
|
+
@name = name
|
18
|
+
@debug = config['debug']
|
19
|
+
@logger = ::Logger.new(config['log_file'], progname: name)
|
20
|
+
|
21
|
+
@logger.level = @debug ? ::Logger::DEBUG : ::Logger::INFO
|
22
|
+
end
|
23
|
+
|
24
|
+
def info message
|
25
|
+
@logger.info(message)
|
26
|
+
Logging.add_log(message, :info, @name)
|
27
|
+
end
|
28
|
+
|
29
|
+
def debug message
|
30
|
+
@logger.debug(message)
|
31
|
+
Logging.add_log(message, :debug, @name) if @debug
|
32
|
+
end
|
33
|
+
|
34
|
+
def warn message
|
35
|
+
@logger.warn(message)
|
36
|
+
Logging.add_log(message, :warn, @name)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
15
40
|
class << self
|
16
41
|
@@debug = false
|
17
42
|
@@logger = []
|
@@ -93,19 +118,19 @@ module Spectre
|
|
93
118
|
end
|
94
119
|
|
95
120
|
def log_info message
|
96
|
-
add_log(message)
|
121
|
+
add_log(message, :info)
|
97
122
|
delegate(:log_info, message)
|
98
123
|
end
|
99
124
|
|
100
125
|
def log_debug message
|
101
126
|
return unless @@debug
|
102
127
|
|
103
|
-
add_log(message)
|
128
|
+
add_log(message, :debug)
|
104
129
|
delegate(:log_debug, message)
|
105
130
|
end
|
106
131
|
|
107
132
|
def log_error spec, exception
|
108
|
-
add_log(exception)
|
133
|
+
add_log(exception, :error)
|
109
134
|
delegate(:log_error, spec, exception)
|
110
135
|
end
|
111
136
|
|
@@ -118,9 +143,15 @@ module Spectre
|
|
118
143
|
end
|
119
144
|
|
120
145
|
def group desc
|
121
|
-
|
146
|
+
Logging.start_group desc
|
122
147
|
yield
|
123
|
-
|
148
|
+
Logging.end_group desc
|
149
|
+
end
|
150
|
+
|
151
|
+
def add_log message, level, logger_name='spectre'
|
152
|
+
return unless Spectre::Runner.current
|
153
|
+
|
154
|
+
Spectre::Runner.current.log.append([DateTime.now, message, level, logger_name])
|
124
155
|
end
|
125
156
|
|
126
157
|
alias_method :info, :log_info
|
@@ -135,10 +166,6 @@ module Spectre
|
|
135
166
|
logger.send(method, *args) if logger.respond_to? method
|
136
167
|
end
|
137
168
|
end
|
138
|
-
|
139
|
-
def add_log message
|
140
|
-
Spectre::Runner.current.log.append([DateTime.now, message])
|
141
|
-
end
|
142
169
|
end
|
143
170
|
|
144
171
|
Spectre.delegate :log, :info, :debug, :group, :separate, to: self
|
data/lib/spectre/mixin.rb
CHANGED
@@ -12,12 +12,12 @@ module Spectre
|
|
12
12
|
|
13
13
|
def required params, *keys
|
14
14
|
missing_keys = keys.select { |x| !params.to_h.key? x }
|
15
|
-
Spectre::
|
15
|
+
Spectre::Logging.log_debug("required parameters for '#{@__desc}': #{keys.join ', '}")
|
16
16
|
raise ArgumentError, "mixin '#{@__desc}' requires #{keys.join ', '}, but only has #{missing_keys.join ', '} given" unless missing_keys.empty?
|
17
17
|
end
|
18
18
|
|
19
19
|
def optional params, *keys
|
20
|
-
Spectre::
|
20
|
+
Spectre::Logging.log_debug("optional parameters for '#{@__desc}': #{keys.join ', '}")
|
21
21
|
params
|
22
22
|
end
|
23
23
|
end
|
@@ -32,7 +32,7 @@ module Spectre
|
|
32
32
|
def run desc, with: []
|
33
33
|
raise "no mixin with desc '#{desc}' defined" unless @@mixins.key? desc
|
34
34
|
|
35
|
-
Spectre::
|
35
|
+
Spectre::Logging.log_debug "running mixin '#{desc}'"
|
36
36
|
|
37
37
|
params = with || {}
|
38
38
|
|
@@ -14,36 +14,34 @@ module Spectre::Reporter
|
|
14
14
|
run_infos
|
15
15
|
.select { |x| x.error != nil or x.failure != nil }
|
16
16
|
.each_with_index do |run_info, index|
|
17
|
-
|
17
|
+
report_str += "\n#{index+1}) #{format_title(run_info)}\n"
|
18
18
|
|
19
|
-
|
19
|
+
if run_info.failure
|
20
|
+
report_str += " Expected #{run_info.failure.expectation}"
|
21
|
+
report_str += " with #{run_info.data}" if run_info.data
|
20
22
|
|
21
|
-
|
22
|
-
report_str += " Expected #{run_info.failure.expectation}"
|
23
|
-
report_str += " with #{run_info.data}" if run_info.data
|
23
|
+
report_str += " but it failed"
|
24
24
|
|
25
|
-
|
25
|
+
if run_info.failure.cause
|
26
|
+
report_str += "\n with an unexpected error:\n"
|
27
|
+
report_str += format_exception(run_info.failure.cause)
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
report_str += format_exception(run_info.failure.cause)
|
29
|
+
elsif run_info.failure.message and not run_info.failure.message.empty?
|
30
|
+
report_str += " with:\n #{run_info.failure.message}"
|
30
31
|
|
31
|
-
|
32
|
-
|
32
|
+
else
|
33
|
+
report_str += '.'
|
34
|
+
end
|
35
|
+
|
36
|
+
report_str += "\n"
|
37
|
+
failures += 1
|
33
38
|
|
34
39
|
else
|
35
|
-
report_str +=
|
40
|
+
report_str += " but an unexpected error occurred during run\n"
|
41
|
+
report_str += format_exception(run_info.error)
|
42
|
+
errors += 1
|
36
43
|
end
|
37
|
-
|
38
|
-
report_str += "\n"
|
39
|
-
failures += 1
|
40
|
-
|
41
|
-
else
|
42
|
-
report_str += " but an unexpected error occurred during run\n"
|
43
|
-
report_str += format_exception(run_info.error)
|
44
|
-
errors += 1
|
45
44
|
end
|
46
|
-
end
|
47
45
|
|
48
46
|
if failures + errors > 0
|
49
47
|
summary = ''
|
@@ -54,7 +52,6 @@ module Spectre::Reporter
|
|
54
52
|
summary += "#{run_infos.length} total"
|
55
53
|
print "\n#{summary}\n".red
|
56
54
|
else
|
57
|
-
summary = ''
|
58
55
|
summary = "\nRun finished successfully"
|
59
56
|
summary += " (#{skipped} skipped)" if skipped > 0
|
60
57
|
print "#{summary}\n".green
|