Feature: Custom Formatter Background: Given a file named "features/f.feature" with: """ Feature: I'll use my own Scenario: Just print me Given this step passes """ And the standard step definitions Scenario: Subscribe to result events This is the recommended way to format output. Given a file named "features/support/custom_formatter.rb" with: """ module MyCustom class Formatter def initialize(config) @io = config.out_stream config.on_event :test_case_started do |event| print_test_case_name(event.test_case) end end def print_test_case_name(test_case) @io.puts " #{test_case.name.upcase}" end end end """ When I run `cucumber features/f.feature --format MyCustom::Formatter --publish-quiet` Then it should pass with exactly: """ JUST PRINT ME """ Scenario: Pass custom config to your formatter from the CLI Given a file named "features/support/custom_formatter.rb" with: """ module MyCustom class Formatter def initialize(config, options) @io = config.out_stream config.on_event :test_run_finished do |event| @io.print options.inspect end end end end """ When I run `cucumber features/f.feature --format MyCustom::Formatter,foo=bar,one=two --publish-quiet` Then it should pass with exactly: """ {"foo"=>"bar", "one"=>"two"} """