serverspec_launcher 0.3.0 → 0.3.1

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: 51df9c0b623e4364ddc2e8230a7c320bbfaf84b8a57a407516a76165ca21ef21
4
- data.tar.gz: cac54f2f95343d60e248834d2706cfd3ec0741d24a4d6aad6221c4c70c1d8f3e
3
+ metadata.gz: b6f82a6355e080feebc93348e6aab8a405d52cb83dcc124cb28f1ffdb10a0b7d
4
+ data.tar.gz: 8b4de676dfccbd4e3b9505fd01f50708da16ed636dd246b2d833036bb7326e94
5
5
  SHA512:
6
- metadata.gz: fe95afd76a4b1004eb62ac4434326e5d3c49b0d8500dbc21ebc08c0714e23d60cd99719615979e87ae1c264beeb90d19d10f973c203121c393c92d277b30bc1d
7
- data.tar.gz: e5e50f3cd690942325ce579a0953104289522ab488315c8de61a4dc4402750cb2f0fda9d6c00f0824e9d6fb95d61c7aef4cd00f87f8142a8674dda7ac7184321
6
+ metadata.gz: 2f3d7740b7ff72401ab01a727c577a9b04a5c92b617656d7f08c0a8d632ac33b61339e1f91e6afde182ca2696c8fedbe4fbc22366cfdbdc2bc3fd67d6eda4526
7
+ data.tar.gz: 78f064b363e4582f88a65887f52e205fcef175cfd8d31f26abfe1ce803b05c2f0e128382027c632ad37798e287758a17fd7f31a1d1aebda008932abd42b9e347
data/.gitignore CHANGED
File without changes
data/.rspec CHANGED
File without changes
data/.rubocop.yml CHANGED
File without changes
data/.travis.yml CHANGED
File without changes
data/CODE_OF_CONDUCT.md CHANGED
File without changes
data/Gemfile CHANGED
File without changes
data/LICENSE.txt CHANGED
File without changes
data/README.md CHANGED
File without changes
data/Rakefile CHANGED
File without changes
@@ -0,0 +1,108 @@
1
+ RSpec::Support.require_rspec_core "formatters/base_formatter"
2
+ require 'json'
3
+
4
+ class LauncherJsonFormatter < RSpec::Core::Formatters::BaseFormatter
5
+ RSpec::Core::Formatters.register self, :message, :dump_summary, :dump_profile, :stop, :seed, :close,:example_group_started, :example_group_finsihed
6
+
7
+ attr_reader :output_hash
8
+
9
+ def initialize(output)
10
+ super
11
+ @output_hash = {
12
+ :version => RSpec::Core::Version::STRING
13
+ }
14
+ @context = []
15
+ @resource = ''
16
+ end
17
+
18
+ def message(notification)
19
+ (@output_hash[:messages] ||= []) << notification.message
20
+ end
21
+
22
+ def dump_summary(summary)
23
+ @output_hash[:summary] = {
24
+ :duration => summary.duration,
25
+ :example_count => summary.example_count,
26
+ :failure_count => summary.failure_count,
27
+ :pending_count => summary.pending_count,
28
+ :errors_outside_of_examples_count => summary.errors_outside_of_examples_count
29
+ }
30
+ @output_hash[:summary_line] = summary.totals_line
31
+ end
32
+
33
+ def stop(notification)
34
+ @output_hash[:examples] = notification.examples.map do |example|
35
+ format_example(example).tap do |hash|
36
+ e = example.exception
37
+ if e
38
+ hash[:exception] = {
39
+ :class => e.class.name,
40
+ :message => e.message,
41
+ :backtrace => e.backtrace,
42
+ }
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ def seed(notification)
49
+ return unless notification.seed_used?
50
+ @output_hash[:seed] = notification.seed
51
+ end
52
+
53
+ def close(_notification)
54
+ output.write @output_hash.to_json
55
+ end
56
+
57
+ def dump_profile(profile)
58
+ @output_hash[:profile] = {}
59
+ dump_profile_slowest_examples(profile)
60
+ dump_profile_slowest_example_groups(profile)
61
+ end
62
+
63
+ def example_group_started(example_group)
64
+ @context.push "#{example_group.group.description}"
65
+ @resource = "#{example_group.group.description}"
66
+ end
67
+
68
+ def example_group_finished(example_group)
69
+ @group.pop
70
+ end
71
+
72
+ # @api private
73
+ def dump_profile_slowest_examples(profile)
74
+ @output_hash[:profile] = {}
75
+ @output_hash[:profile][:examples] = profile.slowest_examples.map do |example|
76
+ format_example(example).tap do |hash|
77
+ hash[:run_time] = example.execution_result.run_time
78
+ end
79
+ end
80
+ @output_hash[:profile][:slowest] = profile.slow_duration
81
+ @output_hash[:profile][:total] = profile.duration
82
+ end
83
+
84
+ # @api private
85
+ def dump_profile_slowest_example_groups(profile)
86
+ @output_hash[:profile] ||= {}
87
+ @output_hash[:profile][:groups] = profile.slowest_groups.map do |loc, hash|
88
+ hash.update(:location => loc)
89
+ end
90
+ end
91
+
92
+ private
93
+
94
+ def format_example(example)
95
+ {
96
+ :id => example.id,
97
+ :description => example.description,
98
+ :full_description => example.full_description,
99
+ :status => example.execution_result.status.to_s,
100
+ :file_path => example.metadata[:file_path],
101
+ :line_number => example.metadata[:line_number],
102
+ :run_time => example.execution_result.run_time,
103
+ :pending_message => example.execution_result.pending_message,
104
+ :resource => @resource,
105
+ :context => @context
106
+ }
107
+ end
108
+ end
File without changes
File without changes
@@ -113,6 +113,9 @@ class ServerspecLauncherRakeTasks
113
113
  if options[:formatters].include?('json')
114
114
  opts = "#{opts} --format j --out #{report_path}.json"
115
115
  end
116
+ if options[:formatters].include?('launcher')
117
+ opts = "#{opts} --format LauncherJsonFormatter --out #{report_path}_extended.json"
118
+ end
116
119
  unless options[:color]
117
120
  opts = "#{opts} --no-color"
118
121
  end
File without changes
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ServerspecLauncher
3
- VERSION = '0.3.0'
3
+ VERSION = '0.3.1'
4
4
  end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serverspec_launcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Wardrobe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-28 00:00:00.000000000 Z
11
+ date: 2019-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -212,6 +212,7 @@ files:
212
212
  - bin/console
213
213
  - bin/setup
214
214
  - exe/serverspec_launcher
215
+ - lib/launcher_json_formatter.rb
215
216
  - lib/serverspec_launcher.rb
216
217
  - lib/serverspec_launcher/generators/properties_generator.rb
217
218
  - lib/serverspec_launcher/generators/rakefile_generator.rb
@@ -247,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
248
  version: '0'
248
249
  requirements: []
249
250
  rubyforge_project:
250
- rubygems_version: 2.7.3
251
+ rubygems_version: 2.7.6
251
252
  signing_key:
252
253
  specification_version: 4
253
254
  summary: A utility to manage serverspec scripts