Module: TestProf::BeforeAll::Minitest
- Defined in:
- lib/test_prof/recipes/minitest/before_all.rb
Overview
Add before_all hook to Minitest: wrap all examples into a transaction and store instance variables
Defined Under Namespace
Modules: ClassMethods Classes: Executor
Class Method Summary collapse
Class Method Details
.included(base) ⇒ Object
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/test_prof/recipes/minitest/before_all.rb', line 114 def included(base) base.extend ClassMethods base.cattr_accessor :parallelized if base.respond_to?(:parallelize_teardown) base.parallelize_teardown do last_klass = ::Minitest.previous_klass if last_klass&.respond_to?(:parallelized) && last_klass.parallelized last_klass.before_all_executor&.deactivate! end end end if base.respond_to?(:parallelize) base.singleton_class.prepend(Module.new do def parallelize(workers: :number_of_processors, with: :processes) # super.parallelize returns nil when no parallelization is set up if super.nil? return end case with when :processes self.parallelized = true when :threads warn "!!! before_all is not implemented for parallalization with threads and " \ "could work incorrectly" else warn "!!! tests are using an unknown parallelization strategy and before_all " \ "could work incorrectly" end end end) end end |