-
Notifications
You must be signed in to change notification settings - Fork 505
Home
With sphinx -- by rgo
At file config/sphinx.yml in test or cucumber section:
cucumber:
port: <%= 9313 + ENV['TEST_ENV_NUMBER'].to_i %>
searchd_file_path: <%= "#{RAILS_ROOT}/db/sphinx/sphinx.#{ENV['TEST_ENV_NUMBER'].to_i}" %>
config_file: <%= "#{RAILS_ROOT}/config/cucumber.#{ENV['TEST_ENV_NUMBER'].to_i}.sphinx.conf" %>
searchd_log_file: <%= "#{RAILS_ROOT}/log/searchd.#{ENV['TEST_ENV_NUMBER'].to_i}.log" %>
query_log_file: <%= "#{RAILS_ROOT}/log/searchd.query.#{ENV['TEST_ENV_NUMBER'].to_i}.log" %>
pid_file: <%= "#{RAILS_ROOT}/log/searchd.#{ENV['TEST_ENV_NUMBER'].to_i}.pid" %>
( I think searchd_log_file and query_log_file are not mandatory. )
With capybara(~>0.4.0)+selenium -- by rgo
Capybara.server_port = 9887 + ENV['TEST_ENV_NUMBER'].to_i
With capybara(=0.3.9)/Rails 2.3 -- by xunker
Add to features/support/env.rb:
if ENV['TEST_ENV_NUMBER']
class Capybara::Server
def find_available_port
@port = 9887 + ENV['TEST_ENV_NUMBER'].to_i
@port += 1 while is_port_open?(@port) and not is_running_on_port?(@port)
end
end
end
With ci_reporter for rspec -- by morganchristiansson
export CI_REPORTS=results
Add spec/parallel_specs.opts with the contents:
--format progress
--require ci/reporter/rake/rspec_loader
--format CI::Reporter::RSpec:/dev/null
Our project has the following in test/test_helper.rb
if ENV["CI_REPORTS"] == "results"
require "ci/reporter/rake/test_unit_loader"
end
Run the tasks like this: rake "parallel:features[,,--format progress --format junit --out ${CI_REPORTS} --no-profile -r features]"
Or without rake like this:
bundle exec
For more information on how to configure ci_reporter check under advanced usage on http://caldersphere.rubyforge.org/ci_reporter/
With ci_reporter for test_unit -- by phoet
See this issue 29 for more information:
# add the ci_reporter to create reports for test-runs, since parallel_tests is not invoked through rake
puts "running on #{Socket.gethostname}"
if /buildserver/ =~ Socket.gethostname
require 'ci/reporter/test_unit'
module Test
module Unit
module UI
module Console
class TestRunner
def create_mediator(suite)
# swap in ci_reporter custom mediator
return CI::Reporter::TestUnit.new(suite)
end
end
end
end
end
end
end
If you have put your features into subdirectories you may have problems running them in parallel as it will not find your step_definitions. To work around this I put all my features into the features directory.
You have to require features/ folder for cucumber in order to load step definitions.
rake "parallel:features[4, '', '-rfeatures/']"
!! add your own experience / gotchas !!