serverspec_launcher 0.3.0 → 0.3.1

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 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