lib/jcukeforker/worker.rb in jcukeforker-0.2.2 vs lib/jcukeforker/worker.rb in jcukeforker-0.2.3

- old
+ new

@@ -5,22 +5,24 @@ require 'cucumber/cli/main' require 'observer' require 'childprocess' require_relative './abstract_listener' require_relative './recording_vnc_listener' +require_relative './formatters/scenario_line_logger' +require_relative './formatters/junit_scenario_formatter' module JCukeForker class Worker include Observable - attr_reader :feature, :format, :out + attr_reader :feature, :format, :out, :basename def initialize(status_path, task_path, recorder = nil) @status_path = status_path @task_path = task_path if ENV['DISPLAY'] && recorder - config = recorder ? {} : JSON.parse(recorder) + config = JSON.parse(recorder) add_observer JCukeForker::RecordingVncListener.new(self, config) end @status_socket = TCPSocket.new 'localhost', status_path @status = nil end @@ -62,11 +64,11 @@ notify_observers *message @status_socket.puts(message.to_json) end def failed? - @status.nil? || @status + @status.nil? || !@status end def output File.join out, "#{basename}.#{format}" end @@ -77,14 +79,10 @@ def stderr File.join out, "#{basename}.stderr" end - def basename - @basename ||= feature.gsub(/\W/, '_') - end - def args args = %W[--format #{format} --out #{output}] args += @extra_args args << feature @@ -92,14 +90,16 @@ end private def set_state(raw_message) + @status = nil json_obj = JSON.parse raw_message @format = json_obj['format'] @feature = json_obj['feature'] @extra_args = json_obj['extra_args'] @out = json_obj['out'] + @basename = feature.gsub(/\W/, '_') end def execute_cucumber FileUtils.mkdir_p(out) unless File.exist? out