spectre-core 1.12.4 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@ require_relative '../spectre'
2
2
  require 'date'
3
3
 
4
4
  module Spectre
5
- module Logger
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
- Logger.start_group desc
146
+ Logging.start_group desc
122
147
  yield
123
- Logger.end_group desc
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::Logger.log_debug("required parameters for '#{@__desc}': #{keys.join ', '}")
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::Logger.log_debug("optional parameters for '#{@__desc}': #{keys.join ', '}")
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::Logger.log_debug "running mixin '#{desc}'"
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
- spec = run_info.spec
17
+ report_str += "\n#{index+1}) #{format_title(run_info)}\n"
18
18
 
19
- report_str += "\n#{index+1}) #{format_title(run_info)}\n"
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
- if run_info.failure
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
- report_str += " but it failed"
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
- if run_info.failure.cause
28
- report_str += "\n with an unexpected error:\n"
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
- elsif run_info.failure.message and not run_info.failure.message.empty?
32
- report_str += " with:\n #{run_info.failure.message}"
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