lib/cucumber/formatter/json.rb in cucumber-2.99.0 vs lib/cucumber/formatter/json.rb in cucumber-3.0.0.pre.1

- old
+ new

@@ -1,5 +1,6 @@ +# frozen_string_literal: true require 'multi_json' require 'base64' require 'cucumber/formatter/backtrace_filter' require 'cucumber/formatter/io' require 'cucumber/formatter/hook_query_visitor' @@ -9,20 +10,20 @@ # The formatter used for <tt>--format json</tt> class Json include Io def initialize(config) - config.on_event :before_test_case, &method(:on_before_test_case) - config.on_event :after_test_case, &method(:on_after_test_case) - config.on_event :before_test_step, &method(:on_before_test_step) - config.on_event :after_test_step, &method(:on_after_test_step) - config.on_event :finished_testing, &method(:on_finished_testing) @io = ensure_io(config.out_stream) @feature_hashes = [] + config.on_event :test_case_starting, &method(:on_test_case_starting) + config.on_event :test_case_finished, &method(:on_test_case_finished) + config.on_event :test_step_starting, &method(:on_test_step_starting) + config.on_event :test_step_finished, &method(:on_test_step_finished) + config.on_event :test_run_finished, &method(:on_test_run_finished) end - def on_before_test_case(event) + def on_test_case_starting(event) test_case = event.test_case builder = Builder.new(test_case) unless same_feature_as_previous_test_case?(test_case.feature) @feature_hash = builder.feature_hash @feature_hashes << @feature_hash @@ -36,11 +37,11 @@ @element_hash = @test_case_hash end @any_step_failed = false end - def on_before_test_step(event) + def on_test_step_starting(event) test_step = event.test_step return if internal_hook?(test_step) hook_query = HookQueryVisitor.new(test_step) if hook_query.hook? @step_or_hook_hash = {} @@ -54,23 +55,24 @@ @step_or_hook_hash = create_step_hash(test_step.source.last) steps << @step_or_hook_hash @step_hash = @step_or_hook_hash end - def on_after_test_step(event) - test_step = event.test_step - result = event.result.with_filtered_backtrace(Cucumber::Formatter::BacktraceFilter) + def on_test_step_finished(event) + test_step, result = *event.attributes + result = result.with_filtered_backtrace(Cucumber::Formatter::BacktraceFilter) return if internal_hook?(test_step) add_match_and_result(test_step, result) @any_step_failed = true if result.failed? end - def on_after_test_case(event) - result = event.result.with_filtered_backtrace(Cucumber::Formatter::BacktraceFilter) + def on_test_case_finished(event) + test_case, result = *event.attributes + result = result.with_filtered_backtrace(Cucumber::Formatter::BacktraceFilter) add_failed_around_hook(result) if result.failed? && !@any_step_failed end - def on_finished_testing(event) + def on_test_run_finished(event) @io.write(MultiJson.dump(@feature_hashes, pretty: true)) end def puts(message) test_step_output << message