almost done with rspec integration. rspec is still running its at_exit
This commit is contained in:
parent
55fb81f5de
commit
b831522a47
|
@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
||||||
|
|
||||||
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
||||||
s.authors = ["Nick Gauthier"]
|
s.authors = ["Nick Gauthier"]
|
||||||
s.date = %q{2010-03-31}
|
s.date = %q{2010-04-03}
|
||||||
s.description = %q{Spread your tests over multiple machines to test your code faster.}
|
s.description = %q{Spread your tests over multiple machines to test your code faster.}
|
||||||
s.email = %q{nick@smartlogicsolutions.com}
|
s.email = %q{nick@smartlogicsolutions.com}
|
||||||
s.extra_rdoc_files = [
|
s.extra_rdoc_files = [
|
||||||
|
@ -46,6 +46,7 @@ Gem::Specification.new do |s|
|
||||||
"lib/hydra/pipe.rb",
|
"lib/hydra/pipe.rb",
|
||||||
"lib/hydra/runner.rb",
|
"lib/hydra/runner.rb",
|
||||||
"lib/hydra/safe_fork.rb",
|
"lib/hydra/safe_fork.rb",
|
||||||
|
"lib/hydra/spec/hydra_formatter.rb",
|
||||||
"lib/hydra/ssh.rb",
|
"lib/hydra/ssh.rb",
|
||||||
"lib/hydra/stdio.rb",
|
"lib/hydra/stdio.rb",
|
||||||
"lib/hydra/tasks.rb",
|
"lib/hydra/tasks.rb",
|
||||||
|
@ -60,6 +61,8 @@ Gem::Specification.new do |s|
|
||||||
"test/fixtures/slow.rb",
|
"test/fixtures/slow.rb",
|
||||||
"test/fixtures/sync_test.rb",
|
"test/fixtures/sync_test.rb",
|
||||||
"test/fixtures/write_file.rb",
|
"test/fixtures/write_file.rb",
|
||||||
|
"test/fixtures/write_file_alternate_spec.rb",
|
||||||
|
"test/fixtures/write_file_spec.rb",
|
||||||
"test/master_test.rb",
|
"test/master_test.rb",
|
||||||
"test/message_test.rb",
|
"test/message_test.rb",
|
||||||
"test/pipe_test.rb",
|
"test/pipe_test.rb",
|
||||||
|
@ -71,22 +74,24 @@ Gem::Specification.new do |s|
|
||||||
s.homepage = %q{http://github.com/ngauthier/hydra}
|
s.homepage = %q{http://github.com/ngauthier/hydra}
|
||||||
s.rdoc_options = ["--charset=UTF-8"]
|
s.rdoc_options = ["--charset=UTF-8"]
|
||||||
s.require_paths = ["lib"]
|
s.require_paths = ["lib"]
|
||||||
s.rubygems_version = %q{1.3.5}
|
s.rubygems_version = %q{1.3.6}
|
||||||
s.summary = %q{Distributed testing toolkit}
|
s.summary = %q{Distributed testing toolkit}
|
||||||
s.test_files = [
|
s.test_files = [
|
||||||
"test/message_test.rb",
|
"test/pipe_test.rb",
|
||||||
"test/test_helper.rb",
|
"test/test_helper.rb",
|
||||||
"test/ssh_test.rb",
|
"test/ssh_test.rb",
|
||||||
|
"test/message_test.rb",
|
||||||
|
"test/master_test.rb",
|
||||||
"test/fixtures/write_file.rb",
|
"test/fixtures/write_file.rb",
|
||||||
"test/fixtures/slow.rb",
|
"test/fixtures/slow.rb",
|
||||||
|
"test/fixtures/write_file_spec.rb",
|
||||||
|
"test/fixtures/features/step_definitions.rb",
|
||||||
|
"test/fixtures/hello_world.rb",
|
||||||
|
"test/fixtures/write_file_alternate_spec.rb",
|
||||||
"test/fixtures/sync_test.rb",
|
"test/fixtures/sync_test.rb",
|
||||||
"test/fixtures/assert_true.rb",
|
"test/fixtures/assert_true.rb",
|
||||||
"test/fixtures/hello_world.rb",
|
|
||||||
"test/fixtures/features/step_definitions.rb",
|
|
||||||
"test/master_test.rb",
|
|
||||||
"test/worker_test.rb",
|
|
||||||
"test/runner_test.rb",
|
"test/runner_test.rb",
|
||||||
"test/pipe_test.rb"
|
"test/worker_test.rb"
|
||||||
]
|
]
|
||||||
|
|
||||||
if s.respond_to? :specification_version then
|
if s.respond_to? :specification_version then
|
||||||
|
|
|
@ -37,6 +37,9 @@ module Hydra #:nodoc:
|
||||||
class RSpecResult < Hydra::Message
|
class RSpecResult < Hydra::Message
|
||||||
# the output of the spec
|
# the output of the spec
|
||||||
attr_accessor :output
|
attr_accessor :output
|
||||||
|
def serialize #:nodoc:
|
||||||
|
super(:output => @output)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -103,9 +103,10 @@ module Hydra #:nodoc:
|
||||||
|
|
||||||
# run all the Specs in an RSpec file (NOT IMPLEMENTED)
|
# run all the Specs in an RSpec file (NOT IMPLEMENTED)
|
||||||
def run_rspec_file(file)
|
def run_rspec_file(file)
|
||||||
|
puts "RUNNING: #{file}"
|
||||||
# pull in rspec
|
# pull in rspec
|
||||||
begin
|
begin
|
||||||
require 'spec/autorun'
|
require 'spec'
|
||||||
require 'hydra/spec/hydra_formatter'
|
require 'hydra/spec/hydra_formatter'
|
||||||
rescue LoadError => ex
|
rescue LoadError => ex
|
||||||
return ex.to_s
|
return ex.to_s
|
||||||
|
@ -121,17 +122,18 @@ module Hydra #:nodoc:
|
||||||
hydra_output = StringIO.new
|
hydra_output = StringIO.new
|
||||||
options.formatters = [Spec::Runner::Formatter::HydraFormatter.new(options.formatter_options, hydra_output)]
|
options.formatters = [Spec::Runner::Formatter::HydraFormatter.new(options.formatter_options, hydra_output)]
|
||||||
require file
|
require file
|
||||||
|
options.files = [file]
|
||||||
options.run_examples
|
options.run_examples
|
||||||
hydra_output.rewind
|
hydra_output.rewind
|
||||||
output = hydra_output.read.chomp
|
output = hydra_output.read.chomp
|
||||||
output = "" if output == "."
|
output = "" if output =~ /^\.*$/
|
||||||
pipe.write RSpecResult.new(:output => output)
|
pipe.write RSpecResult.new(:output => output)
|
||||||
pipe.close
|
pipe.close
|
||||||
end
|
end
|
||||||
pipe.identify_as_parent
|
pipe.identify_as_parent
|
||||||
output = pipe.gets
|
output_message = pipe.gets
|
||||||
Process.wait pid
|
Process.wait pid
|
||||||
return output
|
return output_message.output
|
||||||
end
|
end
|
||||||
|
|
||||||
# run all the scenarios in a cucumber feature file
|
# run all the scenarios in a cucumber feature file
|
||||||
|
|
|
@ -7,7 +7,11 @@ class SafeFork
|
||||||
child = Process.fork do
|
child = Process.fork do
|
||||||
begin
|
begin
|
||||||
# create a new connection and perform the action
|
# create a new connection and perform the action
|
||||||
|
begin
|
||||||
ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
|
ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
|
||||||
|
rescue ActiveRecord::AdapterNotSpecified
|
||||||
|
# AR was defined but we didn't have a connection
|
||||||
|
end
|
||||||
yield
|
yield
|
||||||
ensure
|
ensure
|
||||||
# make sure we remove the connection before we're done
|
# make sure we remove the connection before we're done
|
||||||
|
@ -16,7 +20,11 @@ class SafeFork
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
# make sure we re-establish the connection before returning to the main instance
|
# make sure we re-establish the connection before returning to the main instance
|
||||||
|
begin
|
||||||
ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
|
ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
|
||||||
|
rescue ActiveRecord::AdapterNotSpecified
|
||||||
|
# AR was defined but we didn't have a connection
|
||||||
|
end
|
||||||
end
|
end
|
||||||
return child
|
return child
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,6 +4,7 @@ module Spec
|
||||||
module Runner
|
module Runner
|
||||||
class Options
|
class Options
|
||||||
attr_accessor :formatters
|
attr_accessor :formatters
|
||||||
|
attr_accessor :files
|
||||||
end
|
end
|
||||||
module Formatter
|
module Formatter
|
||||||
class HydraFormatter < ProgressBarFormatter
|
class HydraFormatter < ProgressBarFormatter
|
||||||
|
|
|
@ -95,6 +95,7 @@ module Hydra #:nodoc:
|
||||||
desc "Hydra Tests" + (@name == :hydra ? "" : " for #{@name}")
|
desc "Hydra Tests" + (@name == :hydra ? "" : " for #{@name}")
|
||||||
task @name do
|
task @name do
|
||||||
Hydra::Master.new(@opts)
|
Hydra::Master.new(@opts)
|
||||||
|
puts "OK AND QUIT"
|
||||||
exit(0) #bypass test on_exit output
|
exit(0) #bypass test on_exit output
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue