Module: ParallelTests
- Defined in:
- lib/parallel_tests/railtie.rb,
lib/parallel_tests.rb,
lib/parallel_tests/cli.rb,
lib/parallel_tests/tasks.rb,
lib/parallel_tests/grouper.rb,
lib/parallel_tests/version.rb,
lib/parallel_tests/gherkin/io.rb,
lib/parallel_tests/test/runner.rb,
lib/parallel_tests/rspec/runner.rb,
lib/parallel_tests/gherkin/runner.rb,
lib/parallel_tests/spinach/runner.rb,
lib/parallel_tests/cucumber/runner.rb,
lib/parallel_tests/gherkin/listener.rb,
lib/parallel_tests/rspec/logger_base.rb,
lib/parallel_tests/test/runtime_logger.rb,
lib/parallel_tests/gherkin/runtime_logger.rb,
lib/parallel_tests/cucumber/failures_logger.rb
Overview
rake tasks for Rails 3+
Defined Under Namespace
Modules: Cucumber, Gherkin, RSpec, Spinach, Tasks, Test Classes: CLI, Grouper, Railtie
Constant Summary collapse
- GREP_PROCESSES_COMMAND =
"ps -ef | grep [T]EST_ENV_NUMBER= 2>&1"
- VERSION =
Version = '0.15.1'
Class Method Summary collapse
-
.bundler_enabled? ⇒ Boolean
copied from github.com/carlhuda/bundler Bundler::SharedHelpers#find_gemfile.
- .determine_number_of_processes(count) ⇒ Object
- .first_process? ⇒ Boolean
-
.now ⇒ Object
real time even if someone messed with timecop in tests.
-
.number_of_running_processes ⇒ Object
Fun fact: this includes the current process if it’s run via parallel_tests.
- .wait_for_other_processes_to_finish ⇒ Object
Class Method Details
.bundler_enabled? ⇒ Boolean
copied from github.com/carlhuda/bundler Bundler::SharedHelpers#find_gemfile
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/parallel_tests.rb', line 21 def bundler_enabled? return true if Object.const_defined?(:Bundler) previous = nil current = File.(Dir.pwd) until !File.directory?(current) || current == previous filename = File.join(current, "Gemfile") return true if File.exists?(filename) current, previous = File.("..", current), current end false end |
.determine_number_of_processes(count) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/parallel_tests.rb', line 12 def determine_number_of_processes(count) [ count, ENV["PARALLEL_TEST_PROCESSORS"], Parallel.processor_count ].detect{|c| not c.to_s.strip.empty? }.to_i end |
.first_process? ⇒ Boolean
36 37 38 |
# File 'lib/parallel_tests.rb', line 36 def first_process? !ENV["TEST_ENV_NUMBER"] || ENV["TEST_ENV_NUMBER"].to_i == 0 end |
.now ⇒ Object
real time even if someone messed with timecop in tests
53 54 55 56 57 58 59 |
# File 'lib/parallel_tests.rb', line 53 def now if Time.respond_to?(:now_without_mock_time) # Timecop Time.now_without_mock_time else Time.now end end |
.number_of_running_processes ⇒ Object
Fun fact: this includes the current process if it’s run via parallel_tests
46 47 48 49 50 |
# File 'lib/parallel_tests.rb', line 46 def number_of_running_processes result = `#{GREP_PROCESSES_COMMAND}` raise "Could not grep for processes -> #{result}" if result.strip != "" && !$?.success? result.split("\n").size end |
.wait_for_other_processes_to_finish ⇒ Object
40 41 42 43 |
# File 'lib/parallel_tests.rb', line 40 def wait_for_other_processes_to_finish return unless ENV["TEST_ENV_NUMBER"] sleep 1 until number_of_running_processes <= 1 end |