Module: ActiveSupport::Testing::Isolation
- Defined in:
- lib/active_support/testing/isolation.rb
Defined Under Namespace
Modules: Forking, Subprocess
Constant Summary collapse
- @@class_setup_mutex =
Mutex.new
Class Method Summary collapse
Instance Method Summary collapse
-
#_run_class_setup ⇒ Object
class setup method should only happen in parent.
- #run(runner) ⇒ Object
Class Method Details
.forking_env? ⇒ Boolean
60 61 62 |
# File 'lib/active_support/testing/isolation.rb', line 60 def self.forking_env? !ENV["NO_FORK"] && ((RbConfig::CONFIG['host_os'] !~ /mswin|mingw/) && (RUBY_PLATFORM !~ /java/)) end |
Instance Method Details
#_run_class_setup ⇒ Object
class setup method should only happen in parent
66 67 68 69 70 71 72 73 |
# File 'lib/active_support/testing/isolation.rb', line 66 def _run_class_setup # class setup method should only happen in parent @@class_setup_mutex.synchronize do unless defined?(@@ran_class_setup) || ENV['ISOLATION_TEST'] self.class.setup if self.class.respond_to?(:setup) @@ran_class_setup = true end end end |
#run(runner) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/active_support/testing/isolation.rb', line 75 def run(runner) _run_class_setup serialized = run_in_isolation do |isolated_runner| super(isolated_runner) end retval, proxy = Marshal.load(serialized) proxy.__replay__(runner) retval end |