def run(run_options)
examples = examples_to_run(run_options)
notify(run_options.reporter) unless examples.empty?
return true if examples.empty?
return dry_run(examples, run_options) if run_options.dry_run?
define_methods_from_predicate_matchers
success, before_all_instance_variables = run_before_all(run_options)
success, after_all_instance_variables = execute_examples(success, before_all_instance_variables, examples, run_options)
success = run_after_all(success, after_all_instance_variables, run_options)
end