Class: Konacha::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/konacha/runner.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Runner

Returns a new instance of Runner.



12
13
14
# File 'lib/konacha/runner.rb', line 12

def initialize(options = {})
  @io = options[:output] || STDOUT
end

Instance Attribute Details

#ioObject (readonly)

Returns the value of attribute io.



10
11
12
# File 'lib/konacha/runner.rb', line 10

def io
  @io
end

Class Method Details

.startObject



6
7
8
# File 'lib/konacha/runner.rb', line 6

def self.start
  new.run
end

Instance Method Details

#examplesObject



30
31
32
# File 'lib/konacha/runner.rb', line 30

def examples
  spec_runners.map { |spec_runner| spec_runner.examples }.flatten
end

#failed_examplesObject



38
39
40
# File 'lib/konacha/runner.rb', line 38

def failed_examples
  examples.select { |example| example.failed? }
end

#failure_messagesObject



46
47
48
# File 'lib/konacha/runner.rb', line 46

def failure_messages
  examples.map { |example| example.failure_message }.compact
end

#passed?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/konacha/runner.rb', line 42

def passed?
  examples.all? { |example| example.passed? || example.pending? }
end

#pending_examplesObject



34
35
36
# File 'lib/konacha/runner.rb', line 34

def pending_examples
  examples.select { |example| example.pending? }
end

#runObject



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/konacha/runner.rb', line 16

def run
  before = Time.now

  spec_runners.each { |spec_runner| spec_runner.run } # prints dots
  io.puts ""
  io.puts ""
  failure_messages.each { |msg| io.write("#{msg}\n\n") }

  seconds = "%.2f" % (Time.now - before)
  io.puts "Finished in #{seconds} seconds"
  io.puts "#{examples.size} examples, #{failed_examples.size} failures, #{pending_examples.size} pending"
  passed?
end

#sessionObject



50
51
52
# File 'lib/konacha/runner.rb', line 50

def session
  @session ||= Capybara::Session.new(Konacha.driver, Konacha.application)
end

#spec_runnersObject



54
55
56
# File 'lib/konacha/runner.rb', line 54

def spec_runners
  @spec_runners ||= Konacha::Spec.all.map { |spec| SpecRunner.new(self, spec) }
end