class Cucumber::Cli::Main
def execute!(step_mother)
def execute!(step_mother) trap_interrupt if configuration.drb? begin return DRbClient.run(@args, @error_stream, @out_stream, configuration.drb_port) rescue DRbClientError => e @error_stream.puts "WARNING: #{e.message} Running features locally:" end end step_mother.options = configuration.options step_mother.log = configuration.log step_mother.load_code_files(configuration.support_to_load) step_mother.after_configuration(configuration) features = step_mother.load_plain_text_features(configuration.feature_files) step_mother.load_code_files(configuration.step_defs_to_load) enable_diffing tag_excess = tag_excess(features) configuration.options[:tag_excess] = tag_excess # Hack to make it available in console.rb - later: stick on Run instance. runner = configuration.build_runner(step_mother, @out_stream) step_mother.visitor = runner # Needed to support World#announce runner.visit_features(features) failure = if tag_excess.any? true elsif configuration.wip? step_mother.scenarios(:passed).any? else step_mother.scenarios(:failed).any? || (configuration.strict? && (step_mother.steps(:undefined).any? || step_mother.steps(:pending).any?)) end rescue ProfilesNotDefinedError, YmlLoadError, ProfileNotFound => e @error_stream.puts e.message true end