Class: CucumberConsole::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/cucumber-console/runner.rb

Class Method Summary collapse

Class Method Details

.reset(args) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/cucumber-console/runner.rb', line 2

def self.reset(args)
  require 'cucumber'
  require 'cucumber/rspec/disable_option_parser'
  require 'optparse'
  require 'cucumber'
  require 'logger'
  require 'cucumber/parser'
  require 'cucumber/feature_file'
  require 'cucumber/cli/configuration'

  # If we are using RSpec, make sure we load it before, because some step
  # definitions may contain some rspec wizardry.
  ::RSpecConsole::Runner.reset(args) if defined?(::RSpec) && defined?(::RSpecConsole)

  config = ::Cucumber::Cli::Configuration.new
  config.parse!(args)
  ::Cucumber.logger = config.log

  if @runtime
    def config.support_to_load
      begin
        load 'factory_girl/step_definitions.rb' if defined?(FactoryGirl)
      rescue LoadError
      end
      []
    end
    @runtime.configure(config)
  else
    @runtime = ::Cucumber::Runtime.new(config)
  end

  @runtime.instance_eval do
    @loader = nil
    @results = ::Cucumber::Runtime::Results.new(config)
    @support_code.instance_eval do
      @programming_languages.map do |programming_language|
        programming_language.step_definitions.clear
      end
    end
  end
end

.run(args) ⇒ Object



44
45
46
47
48
49
50
51
# File 'lib/cucumber-console/runner.rb', line 44

def self.run(args)
  ::RailsEnvSwitcher.with_env('test', :reload => true) do
    reset(args)
    @runtime.run!
    @runtime.write_stepdefs_json
    @runtime.results.failure?
  end
end