spectre-core 1.13.0 → 1.14.2
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 +116 -101
- data/lib/spectre/assertion.rb +66 -48
- data/lib/spectre/helpers.rb +3 -2
- data/lib/spectre/http.rb +2 -7
- data/lib/spectre.rb +2 -2
- metadata +4 -12
- data/lib/spectre/reporter/html.rb +0 -1167
- data/lib/spectre/reporter/junit.rb +0 -105
- data/lib/spectre/reporter/vstest.rb +0 -167
- 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 +0 -106
- data/resources/vue.global.prod.js +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1d19a96bd18baeb678abc3670c744bbd8855b4680db1e05bd57dcd99dfc3f21
|
4
|
+
data.tar.gz: db9f3efd3faf3bf571845b1ae340a133ee9a95065cec2b8469d28b0a76985996
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcfa21488bfce34984bac2efa1bc7fa73d703eb84d730497edef928fd9eea35be33abe9774d3becf38a1424d2e347728b5627ec1d053ac69e19b82b8b937decb
|
7
|
+
data.tar.gz: af9018490eb268a7820419e597ea2eb5d8887ed7606c28bb7180e28245347f8d4fe630e26028113a39fd8ad7b54744b20687376fa1c386102ded67bb4ee38874
|
data/exe/spectre
CHANGED
@@ -55,9 +55,6 @@ DEFAULT_CONFIG = {
|
|
55
55
|
'modules' => [
|
56
56
|
'spectre/helpers',
|
57
57
|
'spectre/reporter/console',
|
58
|
-
'spectre/reporter/junit',
|
59
|
-
'spectre/reporter/vstest',
|
60
|
-
'spectre/reporter/html',
|
61
58
|
'spectre/logger/console',
|
62
59
|
'spectre/logger/file',
|
63
60
|
'spectre/assertion',
|
@@ -86,19 +83,21 @@ property_overrides = {}
|
|
86
83
|
$COMMAND = ['spectre'].concat(ARGV.clone).join(' ')
|
87
84
|
|
88
85
|
OptionParser.new do |opts|
|
89
|
-
opts.banner =
|
86
|
+
opts.banner = <<~BANNER
|
87
|
+
Spectre #{Spectre::VERSION}
|
90
88
|
|
91
|
-
|
89
|
+
Usage: spectre [command] [options]
|
92
90
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
91
|
+
Commands:
|
92
|
+
list List specs
|
93
|
+
run Run specs (default)
|
94
|
+
show Print current environment settings
|
95
|
+
dump Dumps the given environment in YAML format to console
|
96
|
+
cleanup Will remove all generated files (e.g. logs and reports)
|
97
|
+
init Initializes a new spectre project
|
100
98
|
|
101
|
-
|
99
|
+
Specific options:
|
100
|
+
BANNER
|
102
101
|
|
103
102
|
opts.on('-s SPEC,SPEC', '--specs SPEC,SPEC', Array, 'The specs to run') do |specs|
|
104
103
|
cmd_options['specs'] = specs
|
@@ -136,11 +135,17 @@ OptionParser.new do |opts|
|
|
136
135
|
cmd_options['out_path'] = File.absolute_path(path)
|
137
136
|
end
|
138
137
|
|
139
|
-
opts.on('-r NAME', '--reporters NAME', Array, "A list of reporters to use") do |reporters|
|
138
|
+
opts.on('-r NAME,NAME', '--reporters NAME,NAME', Array, "A list of reporters to use") do |reporters|
|
140
139
|
cmd_options['reporters'] = reporters
|
141
140
|
end
|
142
141
|
|
143
|
-
opts.on('-
|
142
|
+
opts.on('-m MODULE,MODULE', '--modules MODULE,MODULE', Array, "Load the given modules") do |modules|
|
143
|
+
modules.each do |mod|
|
144
|
+
require mod
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
opts.on('-d', '--debug', "Run in debug mode. Do not use in production!") do
|
144
149
|
cmd_options['debug'] = true
|
145
150
|
end
|
146
151
|
|
@@ -165,9 +170,9 @@ OptionParser.new do |opts|
|
|
165
170
|
end
|
166
171
|
end
|
167
172
|
|
168
|
-
opts.separator "\
|
173
|
+
opts.separator "\n Common options:"
|
169
174
|
|
170
|
-
opts.on_tail('--version', 'Print current installed version') do
|
175
|
+
opts.on_tail('-v', '--version', 'Print current installed version') do
|
171
176
|
puts Spectre::VERSION
|
172
177
|
exit
|
173
178
|
end
|
@@ -205,15 +210,19 @@ if File.exists? config_file
|
|
205
210
|
Dir.chdir File.dirname(config_file)
|
206
211
|
end
|
207
212
|
|
213
|
+
# Set config options, which are only allowed to be overriden by command options
|
214
|
+
cfg['debug'] = DEFAULT_CONFIG['debug']
|
215
|
+
|
216
|
+
# Set project name
|
208
217
|
cfg['project'] = File.basename(Dir.pwd) unless cfg['project']
|
209
218
|
|
210
219
|
cfg.deep_merge! cmd_options
|
211
220
|
|
221
|
+
|
212
222
|
###########################################
|
213
223
|
# Load Environment
|
214
224
|
###########################################
|
215
225
|
|
216
|
-
|
217
226
|
envs = {}
|
218
227
|
read_env_files = {}
|
219
228
|
cfg['env_patterns'].each do |pattern|
|
@@ -258,127 +267,131 @@ require_relative '../lib/spectre/environment' unless cfg['exclude'].include? 'sp
|
|
258
267
|
Spectre.configure(cfg)
|
259
268
|
|
260
269
|
|
261
|
-
|
262
|
-
|
263
|
-
###########################################
|
270
|
+
# Load specs only, when listing or running specs
|
271
|
+
if ['list', 'run'].include? action
|
264
272
|
|
273
|
+
###########################################
|
274
|
+
# Load Specs
|
275
|
+
###########################################
|
265
276
|
|
266
|
-
|
267
|
-
|
268
|
-
|
277
|
+
|
278
|
+
cfg['spec_patterns'].each do |pattern|
|
279
|
+
Dir.glob(pattern).each do|f|
|
280
|
+
require_relative File.join(Dir.pwd, f)
|
281
|
+
end
|
269
282
|
end
|
270
|
-
end
|
271
283
|
|
272
284
|
|
273
|
-
###########################################
|
274
|
-
# List specs
|
275
|
-
###########################################
|
285
|
+
###########################################
|
286
|
+
# List specs
|
287
|
+
###########################################
|
288
|
+
|
276
289
|
|
290
|
+
if 'list' == action
|
291
|
+
colors = [:blue, :magenta, :yellow, :green]
|
292
|
+
specs = Spectre.specs(cfg['specs'], cfg['tags'])
|
277
293
|
|
278
|
-
|
279
|
-
colors = [:blue, :magenta, :yellow, :green]
|
280
|
-
specs = Spectre.specs(cfg['specs'], cfg['tags'])
|
294
|
+
exit 1 unless specs.any?
|
281
295
|
|
282
|
-
|
296
|
+
counter = 0
|
283
297
|
|
284
|
-
|
298
|
+
specs.group_by { |x| x.subject }.each do |subject, spec_group|
|
299
|
+
spec_group.each do |spec|
|
300
|
+
tags = spec.tags.map { |x| '#' + x.to_s }.join ' '
|
301
|
+
desc = subject.desc
|
302
|
+
desc += ' - ' + spec.context.__desc + ' -' if spec.context.__desc
|
303
|
+
desc += ' ' + spec.desc
|
304
|
+
puts "[#{spec.name}]".send(colors[counter % colors.length]) + " #{desc} #{tags.cyan}"
|
305
|
+
end
|
285
306
|
|
286
|
-
|
287
|
-
spec_group.each do |spec|
|
288
|
-
tags = spec.tags.map { |x| '#' + x.to_s }.join ' '
|
289
|
-
desc = subject.desc
|
290
|
-
desc += ' - ' + spec.context.__desc + ' -' if spec.context.__desc
|
291
|
-
desc += ' ' + spec.desc
|
292
|
-
puts "[#{spec.name}]".send(colors[counter % colors.length]) + " #{desc} #{tags.cyan}"
|
307
|
+
counter += 1
|
293
308
|
end
|
294
309
|
|
295
|
-
|
310
|
+
exit 0
|
296
311
|
end
|
297
312
|
|
298
|
-
exit 0
|
299
|
-
end
|
300
313
|
|
314
|
+
###########################################
|
315
|
+
# Run
|
316
|
+
###########################################
|
301
317
|
|
302
|
-
###########################################
|
303
|
-
# Run
|
304
|
-
###########################################
|
305
318
|
|
319
|
+
if 'run' == action
|
320
|
+
# Initialize logger
|
321
|
+
now = Time.now
|
306
322
|
|
307
|
-
|
308
|
-
|
309
|
-
|
323
|
+
cfg['log_file'] = cfg['log_file'].frmt({
|
324
|
+
shortdate: now.strftime('%Y-%m-%d'),
|
325
|
+
date: now.strftime('%Y-%m-%d_%H%M%S'),
|
326
|
+
timestamp: now.strftime('%s'),
|
327
|
+
subject: 'spectre',
|
328
|
+
})
|
310
329
|
|
311
|
-
|
312
|
-
|
313
|
-
date: now.strftime('%Y-%m-%d_%H%M%S'),
|
314
|
-
timestamp: now.strftime('%s'),
|
315
|
-
subject: 'spectre',
|
316
|
-
})
|
330
|
+
log_dir = File.dirname(cfg['log_file'])
|
331
|
+
FileUtils.makedirs(log_dir)
|
317
332
|
|
318
|
-
|
319
|
-
FileUtils.makedirs(log_dir)
|
333
|
+
# Load Modules
|
320
334
|
|
321
|
-
|
335
|
+
cfg['modules']
|
336
|
+
.concat(cfg['include'])
|
337
|
+
.select { |mod| !cfg['exclude'].include? mod }
|
338
|
+
.each do |mod|
|
339
|
+
begin
|
340
|
+
mod_file = mod + '.rb'
|
341
|
+
spectre_lib_mod = File.join(File.dirname(__dir__), 'lib', mod_file)
|
322
342
|
|
323
|
-
|
324
|
-
|
325
|
-
.select { |mod| !cfg['exclude'].include? mod }
|
326
|
-
.each do |mod|
|
327
|
-
begin
|
328
|
-
mod_file = mod + '.rb'
|
329
|
-
spectre_lib_mod = File.join(File.dirname(__dir__), 'lib', mod_file)
|
343
|
+
if File.exists? mod_file
|
344
|
+
require_relative mod_file
|
330
345
|
|
331
|
-
|
332
|
-
|
346
|
+
elsif File.exists? spectre_lib_mod
|
347
|
+
require_relative spectre_lib_mod
|
333
348
|
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
349
|
+
else
|
350
|
+
require mod
|
351
|
+
end
|
352
|
+
rescue LoadError => e
|
353
|
+
puts "Unable to load module #{mod}. Check if the module exists or remove it from your spectre config:\n#{e.message}"
|
354
|
+
exit 1
|
339
355
|
end
|
340
|
-
rescue LoadError => e
|
341
|
-
puts "Unable to load module #{mod}. Check if the module exists or remove it from your spectre config:\n#{e.message}"
|
342
|
-
exit 1
|
343
356
|
end
|
344
|
-
end
|
345
357
|
|
346
|
-
|
358
|
+
# Load mixins
|
347
359
|
|
348
|
-
|
349
|
-
|
350
|
-
|
360
|
+
cfg['mixin_patterns'].each do |pattern|
|
361
|
+
Dir.glob(pattern).each do|f|
|
362
|
+
require_relative File.join(Dir.pwd, f)
|
363
|
+
end
|
351
364
|
end
|
352
|
-
end
|
353
365
|
|
354
|
-
|
366
|
+
Spectre.configure(cfg)
|
355
367
|
|
356
|
-
|
368
|
+
Spectre::Logging.debug! if cfg['debug']
|
357
369
|
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
370
|
+
cfg['loggers'].each do |logger_name|
|
371
|
+
logger = Kernel.const_get(logger_name).new(cfg)
|
372
|
+
Spectre::Logging.add(logger)
|
373
|
+
end if cfg['loggers']
|
362
374
|
|
363
|
-
|
375
|
+
specs = Spectre.specs(cfg['specs'], cfg['tags'])
|
364
376
|
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
377
|
+
unless specs.any?
|
378
|
+
puts "No specs found in #{Dir.pwd}"
|
379
|
+
exit 1
|
380
|
+
end
|
369
381
|
|
370
|
-
|
382
|
+
run_infos = Spectre::Runner.new.run(specs)
|
371
383
|
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
384
|
+
cfg['reporters'].each do |reporter|
|
385
|
+
reporter = Kernel.const_get(reporter).new(cfg)
|
386
|
+
reporter.report(run_infos)
|
387
|
+
end
|
376
388
|
|
377
|
-
|
389
|
+
errors = run_infos.select { |x| nil != x.error or nil != x.failure }
|
378
390
|
|
379
|
-
|
391
|
+
exit 0 if cfg['ignore_failure'] or not errors.any?
|
380
392
|
|
381
|
-
|
393
|
+
exit 1
|
394
|
+
end
|
382
395
|
end
|
383
396
|
|
384
397
|
|
@@ -425,10 +438,12 @@ if 'cleanup' == action
|
|
425
438
|
|
426
439
|
Dir.glob(log_file_pattern).each do |log_file|
|
427
440
|
File.delete(log_file)
|
441
|
+
puts "#{log_file} deleted"
|
428
442
|
end
|
429
443
|
|
430
444
|
Dir.glob(File.join cfg['out_path'], '/*').each do |out_file|
|
431
445
|
File.delete(out_file)
|
446
|
+
puts "#{out_file} deleted"
|
432
447
|
end
|
433
448
|
end
|
434
449
|
|
@@ -511,7 +526,7 @@ SAMPLE_SPEC = %[describe '<subject>' do
|
|
511
526
|
end
|
512
527
|
|
513
528
|
expect 'a message to exist' do
|
514
|
-
response.json.message.
|
529
|
+
response.json.message.should_not_be_empty
|
515
530
|
end
|
516
531
|
end
|
517
532
|
end
|
data/lib/spectre/assertion.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative '../spectre'
|
2
|
+
require_relative '../spectre/helpers'
|
2
3
|
|
3
4
|
require 'ostruct'
|
4
5
|
require_relative 'logger'
|
@@ -7,32 +8,39 @@ require_relative 'logger'
|
|
7
8
|
module Spectre
|
8
9
|
module Assertion
|
9
10
|
class ::Object
|
10
|
-
def should_be(
|
11
|
-
|
11
|
+
def should_be(value)
|
12
|
+
evaluate(value, "#{self} should be #{value}") do |x|
|
13
|
+
self.to_s == x.to_s
|
14
|
+
end
|
12
15
|
end
|
13
16
|
|
14
17
|
def should_be_empty
|
15
|
-
raise AssertionFailure.new("
|
18
|
+
raise AssertionFailure.new("#{self.to_s.trim} should be empty", nil, self) unless self.nil?
|
16
19
|
end
|
17
20
|
|
18
21
|
def should_not_be(val)
|
19
|
-
raise AssertionFailure.new("
|
22
|
+
raise AssertionFailure.new("#{self.to_s.trim} should not be #{val.to_s.trim}", val, self) unless self.to_s != val.to_s
|
20
23
|
end
|
21
24
|
|
22
25
|
def should_not_exist
|
23
|
-
raise AssertionFailure.new("
|
26
|
+
raise AssertionFailure.new("#{self.to_s.trim} should not exist, but it does", val, self) unless self.to_s != nil
|
24
27
|
end
|
25
28
|
|
26
29
|
def should_not_be_empty
|
27
30
|
raise AssertionFailure.new('empty value', 'nothing', self) unless self != nil
|
28
31
|
end
|
29
32
|
|
33
|
+
def evaluate val, message, &block
|
34
|
+
val = Evaluation.new(val) unless val.is_a? Evaluation
|
35
|
+
raise AssertionFailure.new(message, val, self) unless val.run &block
|
36
|
+
end
|
37
|
+
|
30
38
|
def or other
|
31
|
-
OrEvaluation.new
|
39
|
+
OrEvaluation.new(self, other)
|
32
40
|
end
|
33
41
|
|
34
42
|
def and other
|
35
|
-
AndEvaluation.new
|
43
|
+
AndEvaluation.new(self, other)
|
36
44
|
end
|
37
45
|
end
|
38
46
|
|
@@ -93,7 +101,9 @@ module Spectre
|
|
93
101
|
val = OpenStruct.new(val)
|
94
102
|
end
|
95
103
|
|
96
|
-
|
104
|
+
evaluate(val, "#{list} should contain #{val.to_s}") do |x|
|
105
|
+
list.include? x
|
106
|
+
end
|
97
107
|
end
|
98
108
|
|
99
109
|
def should_not_contain(val)
|
@@ -118,7 +128,9 @@ module Spectre
|
|
118
128
|
|
119
129
|
class ::String
|
120
130
|
def should_be(val)
|
121
|
-
|
131
|
+
evaluate(val, "'#{self}' should be '#{val}'") do |x|
|
132
|
+
self.to_s == x.to_s
|
133
|
+
end
|
122
134
|
end
|
123
135
|
|
124
136
|
def should_be_empty
|
@@ -126,35 +138,37 @@ module Spectre
|
|
126
138
|
end
|
127
139
|
|
128
140
|
def should_not_be(val)
|
129
|
-
|
141
|
+
evaluate(val, "'#{self}' should not be '#{val}'") do |x|
|
142
|
+
self.to_s != x.to_s
|
143
|
+
end
|
130
144
|
end
|
131
145
|
|
132
146
|
def should_not_be_empty
|
133
147
|
raise AssertionFailure.new('Text should not be empty', 'nothing', self) unless not self.empty?
|
134
148
|
end
|
135
149
|
|
136
|
-
def should_contain(
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
evaluation = SingleEvaluation.new(value)
|
141
|
-
success = evaluation.call(predicate)
|
142
|
-
|
143
|
-
return if success
|
144
|
-
|
145
|
-
raise AssertionFailure.new("'#{self.to_s.trim}' should contain #{evaluation.to_s}", evaluation, self)
|
150
|
+
def should_contain(val)
|
151
|
+
evaluate(val, "'#{self.trim}' should contain '#{val.to_s}'") do |x|
|
152
|
+
self.include? x.to_s
|
153
|
+
end
|
146
154
|
end
|
147
155
|
|
148
156
|
def should_not_contain(val)
|
149
|
-
|
157
|
+
evaluate(val, "'#{self}' should not contain '#{val}'") do |x|
|
158
|
+
not self.include? x.to_s
|
159
|
+
end
|
150
160
|
end
|
151
161
|
|
152
162
|
def should_match(regex)
|
153
|
-
|
163
|
+
evaluate(regex, "'#{self.trim}' should match /#{regex}/") do |x|
|
164
|
+
self.match(x)
|
165
|
+
end
|
154
166
|
end
|
155
167
|
|
156
168
|
def should_not_match(regex)
|
157
|
-
|
169
|
+
evaluate(regex, "'#{self.trim}' should not match '#{regex}'") do |x|
|
170
|
+
not self.match(x)
|
171
|
+
end
|
158
172
|
end
|
159
173
|
|
160
174
|
alias :| :or
|
@@ -162,54 +176,58 @@ module Spectre
|
|
162
176
|
end
|
163
177
|
|
164
178
|
class Evaluation
|
165
|
-
def initialize
|
166
|
-
@
|
167
|
-
@other = other
|
179
|
+
def initialize val
|
180
|
+
@val = val
|
168
181
|
end
|
169
182
|
|
170
|
-
def
|
183
|
+
def run &block
|
184
|
+
evaluate(@val, block)
|
185
|
+
end
|
186
|
+
|
187
|
+
def evaluate(val, predicate)
|
171
188
|
if val.is_a? Evaluation
|
172
|
-
val.
|
189
|
+
val.run &predicate
|
173
190
|
else
|
174
191
|
predicate.call(val)
|
175
192
|
end
|
176
193
|
end
|
177
194
|
|
178
|
-
alias :| :or
|
179
|
-
alias :& :and
|
180
|
-
end
|
181
|
-
|
182
|
-
class SingleEvaluation < Evaluation
|
183
|
-
def initialize value
|
184
|
-
super(value, nil)
|
185
|
-
end
|
186
|
-
|
187
|
-
def call predicate
|
188
|
-
eval_assertion(predicate, @value)
|
189
|
-
end
|
190
|
-
|
191
195
|
def to_s
|
192
|
-
@
|
196
|
+
@val.to_s
|
193
197
|
end
|
194
198
|
end
|
195
199
|
|
196
200
|
class OrEvaluation < Evaluation
|
197
|
-
def
|
198
|
-
|
201
|
+
def initialize val, other
|
202
|
+
@val = val
|
203
|
+
@other = other
|
204
|
+
end
|
205
|
+
|
206
|
+
def run &block
|
207
|
+
res1 = evaluate(@val, block)
|
208
|
+
res2 = evaluate(@other, block)
|
209
|
+
res1 or res2
|
199
210
|
end
|
200
211
|
|
201
212
|
def to_s
|
202
|
-
"(#{@
|
213
|
+
"(#{@val} or #{@other})"
|
203
214
|
end
|
204
215
|
end
|
205
216
|
|
206
217
|
class AndEvaluation < Evaluation
|
207
|
-
def
|
208
|
-
|
218
|
+
def initialize val, other
|
219
|
+
@val = val
|
220
|
+
@other = other
|
221
|
+
end
|
222
|
+
|
223
|
+
def run &block
|
224
|
+
res1 = evaluate(@val, block)
|
225
|
+
res2 = evaluate(@other, block)
|
226
|
+
res1 and res2
|
209
227
|
end
|
210
228
|
|
211
229
|
def to_s
|
212
|
-
"(#{@
|
230
|
+
"(#{@val} and #{@other})"
|
213
231
|
end
|
214
232
|
end
|
215
233
|
|
data/lib/spectre/helpers.rb
CHANGED
data/lib/spectre/http.rb
CHANGED
@@ -19,7 +19,7 @@ module Spectre
|
|
19
19
|
'cert' => nil,
|
20
20
|
'headers' => nil,
|
21
21
|
'query' => nil,
|
22
|
-
'content_type' =>
|
22
|
+
'content_type' => nil,
|
23
23
|
'timeout' => 180,
|
24
24
|
'retries' => 0,
|
25
25
|
}
|
@@ -77,8 +77,7 @@ module Spectre
|
|
77
77
|
data = data.to_h if data.is_a? OpenStruct
|
78
78
|
body JSON.pretty_generate(data)
|
79
79
|
|
80
|
-
|
81
|
-
content_type('application/json')
|
80
|
+
content_type('application/json') unless @__req['content_type']
|
82
81
|
end
|
83
82
|
|
84
83
|
def body body_content
|
@@ -231,10 +230,6 @@ module Spectre
|
|
231
230
|
# do nothing
|
232
231
|
end
|
233
232
|
|
234
|
-
if str.length > 1000
|
235
|
-
str = str[0...1000] + "\n[...]"
|
236
|
-
end
|
237
|
-
|
238
233
|
str
|
239
234
|
end
|
240
235
|
|
data/lib/spectre.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spectre-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.14.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Neubauer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08
|
11
|
+
date: 2022-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ectoplasm
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.2.
|
19
|
+
version: 1.2.3
|
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: 1.2.
|
26
|
+
version: 1.2.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: jsonpath
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -63,15 +63,7 @@ files:
|
|
63
63
|
- lib/spectre/logger/file.rb
|
64
64
|
- lib/spectre/mixin.rb
|
65
65
|
- lib/spectre/reporter/console.rb
|
66
|
-
- lib/spectre/reporter/html.rb
|
67
|
-
- lib/spectre/reporter/junit.rb
|
68
|
-
- lib/spectre/reporter/vstest.rb
|
69
66
|
- lib/spectre/resources.rb
|
70
|
-
- resources/OpenSans-Regular.ttf
|
71
|
-
- resources/fa-regular-400.ttf
|
72
|
-
- resources/fa-solid-900.ttf
|
73
|
-
- resources/spectre_icon.svg
|
74
|
-
- resources/vue.global.prod.js
|
75
67
|
homepage: https://github.com/ionos-spectre/spectre-core
|
76
68
|
licenses:
|
77
69
|
- GPL-3.0-or-later
|