Module: ActiveSupport::Testing::Isolation
- Defined in:
- lib/active_support/testing/isolation.rb
Defined Under Namespace
Modules: Forking, Subprocess
Constant Summary
collapse
- SubprocessCrashed =
Class.new(StandardError)
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.forking_env? ⇒ Boolean
18
19
20
|
# File 'lib/active_support/testing/isolation.rb', line 18
def self.forking_env?
!ENV["NO_FORK"] && Process.respond_to?(:fork)
end
|
.included(klass) ⇒ Object
12
13
14
15
16
|
# File 'lib/active_support/testing/isolation.rb', line 12
def self.included(klass) klass.class_eval do
parallelize_me! unless Minitest.parallel_executor.is_a?(ActiveSupport::Testing::ParallelizeExecutor)
end
end
|
Instance Method Details
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/active_support/testing/isolation.rb', line 22
def run
status, serialized = run_in_isolation do
super
end
unless status&.success?
error = SubprocessCrashed.new("Subprocess exited with an error: #{status.inspect}\noutput: #{serialized.inspect}")
error.set_backtrace(caller)
self.failures << Minitest::UnexpectedError.new(error)
return defined?(Minitest::Result) ? Minitest::Result.from(self) : dup
end
Marshal.load(serialized)
end
|