Sha256: 06df02d23d4c637be291d51865f5032bcce5183993303f029eb63a4c2249548a
Contents?: true
Size: 1.72 KB
Versions: 1
Compression:
Stored size: 1.72 KB
Contents
module Specjour class Worker include Protocol include SocketHelpers attr_accessor :printer_uri attr_reader :project_path, :specs_to_run, :number, :batch_size def initialize(project_path, printer_uri, number, batch_size) @project_path = project_path @specs_to_run = specs_to_run @number = number.to_i @batch_size = batch_size.to_i self.printer_uri = printer_uri GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly=) DistributedFormatter.batch_size = batch_size set_env_variables end def printer_uri=(val) @printer_uri = URI.parse(val) end def run printer.send_message(:ready) run_time = 0 Dir.chdir(project_path) while !printer.closed? && data = printer.gets(TERMINATOR) spec = load_object(data) if spec run_time += Benchmark.realtime do run_spec spec end printer.send_message(:ready) else printer.send_message(:done) printer.send_message(:worker_summary=, {:duration => sprintf("%6f", run_time)}) printer.close end end end protected def printer @printer ||= printer_connection end def printer_connection Connection.new printer_uri end def run_spec(spec) puts "Running #{spec}" options = Spec::Runner::OptionParser.parse( ['--format=Specjour::DistributedFormatter', spec], $stderr, printer_connection ) Spec::Runner.use options options.run_examples end def set_env_variables ENV['PREPARE_DB'] = 'true' ENV['RSPEC_COLOR'] = 'true' ENV['TEST_ENV_NUMBER'] = number.to_s end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
specjour-0.1.18 | lib/specjour/worker.rb |