class BladeRunner::TestResults
Attributes
failures[R]
lines[R]
passes[R]
session_id[R]
status[R]
Public Class Methods
new(session_id)
click to toggle source
# File lib/blade_runner/test_results.rb, line 4 def initialize(session_id) @session_id = session_id reset BR.subscribe("/tests") do |details| if details["session_id"] == session_id process_test_result(details) end end end
Public Instance Methods
process_test_result(details)
click to toggle source
# File lib/blade_runner/test_results.rb, line 24 def process_test_result(details) publication = {} case details["event"] when "begin" reset @status = "running" @total = details["total"] @lines << publication[:line] = "1..#{@total}" when "result" pass = details["result"] args = details.values_at("name", "message") if pass line = Pass.new(*args).to_s @passes << line else line = Failure.new(*args).to_s @failures << line @status = "failing" end @lines << line publication.merge!(line: line, pass: pass) when "end" @status = failures.any? ? "failed" : "finished" @completed = true end publication.merge!(status: status, session_id: session_id, completed: @completed) BR.publish("/results", publication) end
reset()
click to toggle source
# File lib/blade_runner/test_results.rb, line 15 def reset @lines = [] @passes = [] @failures = [] @completed = false @status = "pending" @total = nil end
to_s()
click to toggle source
# File lib/blade_runner/test_results.rb, line 65 def to_s lines.join("\n") + "\n" end
total()
click to toggle source
# File lib/blade_runner/test_results.rb, line 57 def total if @total @total elsif @completed passes.size + failures.size end end