Class: Zeus::ParallelTests::Rails

Inherits:
Rails
  • Object
show all
Defined in:
lib/zeus/parallel_tests/rails.rb

Direct Known Subclasses

CustomPlan

Instance Method Summary collapse

Instance Method Details

#cucumber(argv = ARGV) ⇒ Object



67
68
69
# File 'lib/zeus/parallel_tests/rails.rb', line 67

def cucumber(argv = ARGV)
  ::Cucumber::Cli::Main.execute(argv)
end

#cucumber_environmentObject



62
63
64
65
# File 'lib/zeus/parallel_tests/rails.rb', line 62

def cucumber_environment
  require 'cucumber/rspec/disable_option_parser'
  require 'cucumber/cli/main'
end

#parallel_cucumberObject



23
24
25
26
27
28
29
# File 'lib/zeus/parallel_tests/rails.rb', line 23

def parallel_cucumber
  if ENV.key?('RAILS_ENV')
    puts "Warning: Deleting RAILS_ENV (which is `#{ENV['RAILS_ENV']}` as Zeus will complain about it."
    ENV.delete('RAILS_ENV')
  end
  exec parallel_runner_command 'cucumber', ARGV
end

#parallel_cucumber_workerObject



42
43
44
# File 'lib/zeus/parallel_tests/rails.rb', line 42

def parallel_cucumber_worker
  spawn_slave { |args| cucumber(args) }
end

#parallel_rspecObject



31
32
33
34
35
36
37
38
39
40
# File 'lib/zeus/parallel_tests/rails.rb', line 31

def parallel_rspec
  if ENV.key?('RAILS_ENV')
    puts "Warning: Deleting RAILS_ENV (which is `#{ENV['RAILS_ENV']}` as Zeus will complain about it."
    ENV.delete('RAILS_ENV')
  end
  argv = ARGV.dup
  argv.delete('--color')  # remove this argument from list
  argv.delete('--colour') # because it was causing bug #14
  exec parallel_runner_command 'rspec', argv
end

#parallel_rspec_workerObject



46
47
48
# File 'lib/zeus/parallel_tests/rails.rb', line 46

def parallel_rspec_worker
  spawn_slave { |args| test(args) }
end

#test(argv = ARGV) ⇒ Object

Patches required in Zeus



52
53
54
55
56
57
58
59
60
# File 'lib/zeus/parallel_tests/rails.rb', line 52

def test(argv = ARGV)
  if spec_file?(argv) && defined?(RSpec)
    # disable autorun in case the user left it in spec_helper.rb
    RSpec::Core::Runner.disable_autorun!
    exit RSpec::Core::Runner.run(argv)
  else
    Zeus::M.run(argv)
  end
end