mirror of
https://github.com/inspec/inspec
synced 2024-11-23 21:23:29 +00:00
add --format fulljson formatter
This commit is contained in:
parent
4c7c79cbf0
commit
040b2eac8e
2 changed files with 31 additions and 4 deletions
|
@ -3,6 +3,7 @@
|
||||||
# author: Christoph Hartmann
|
# author: Christoph Hartmann
|
||||||
|
|
||||||
require 'rspec/core'
|
require 'rspec/core'
|
||||||
|
require 'rspec/core/formatters/json_formatter'
|
||||||
|
|
||||||
# Extend the basic RSpec JSON Formatter
|
# Extend the basic RSpec JSON Formatter
|
||||||
# to give us an ID in its output
|
# to give us an ID in its output
|
||||||
|
@ -21,10 +22,34 @@ module RSpec::Core::Formatters
|
||||||
run_time: example.execution_result.run_time,
|
run_time: example.execution_result.run_time,
|
||||||
pending_message: example.execution_result.pending_message,
|
pending_message: example.execution_result.pending_message,
|
||||||
id: example.metadata[:id],
|
id: example.metadata[:id],
|
||||||
impact: example.metadata[:impact],
|
|
||||||
title: example.metadata[:title],
|
|
||||||
desc: example.metadata[:desc],
|
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class InspecRspecFormatter < RSpec::Core::Formatters::JsonFormatter
|
||||||
|
RSpec::Core::Formatters.register self, :message, :dump_summary, :dump_profile, :stop, :close
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def format_example(example)
|
||||||
|
res = {
|
||||||
|
id: example.metadata[:id],
|
||||||
|
title: example.metadata[:title],
|
||||||
|
desc: example.metadata[:desc],
|
||||||
|
code: example.metadata[:code],
|
||||||
|
impact: example.metadata[:impact],
|
||||||
|
status: example.execution_result.status.to_s,
|
||||||
|
code_desc: example.full_description,
|
||||||
|
ref: example.metadata['file_path'],
|
||||||
|
ref_line: example.metadata['line_number'],
|
||||||
|
run_time: example.execution_result.run_time,
|
||||||
|
start_time: example.execution_result.started_at.to_s,
|
||||||
|
}
|
||||||
|
|
||||||
|
# pending messages are embedded in the resources description
|
||||||
|
res[:pending] = example.metadata[:description] if res[:status] == 'pending'
|
||||||
|
|
||||||
|
res
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -81,7 +81,9 @@ module Inspec
|
||||||
RSpec.configuration.output_stream = @conf['output']
|
RSpec.configuration.output_stream = @conf['output']
|
||||||
end
|
end
|
||||||
|
|
||||||
RSpec.configuration.add_formatter(@conf['format'] || 'progress')
|
format = @conf['format'] || 'progress'
|
||||||
|
format = 'InspecRspecFormatter' if format == 'fulljson'
|
||||||
|
RSpec.configuration.add_formatter(format)
|
||||||
RSpec.configuration.color = @conf['color']
|
RSpec.configuration.color = @conf['color']
|
||||||
|
|
||||||
setup_reporting if @conf['report']
|
setup_reporting if @conf['report']
|
||||||
|
|
Loading…
Reference in a new issue