类 Minitest::Parallel::Executor
用于并行运行多个测试的引擎。
属性
size[R]
工作池的大小。
公共类方法
new(size) 点击以切换源代码
创建一个具有 size
个工作线程的并行测试执行器。
# File minitest-5.25.4/lib/minitest/parallel.rb, line 17 def initialize size @size = size @queue = Thread::Queue.new @pool = nil end
公共实例方法
<<(work;) 点击以切换源代码
向队列添加一个作业
# File minitest-5.25.4/lib/minitest/parallel.rb, line 43 def << work; @queue << work; end
shutdown() 点击以切换源代码
通过向工作线程发送退出信号并等待它们完成当前工作来关闭工作池。
# File minitest-5.25.4/lib/minitest/parallel.rb, line 50 def shutdown size.times { @queue << nil } @pool.each(&:join) end
start() 点击以切换源代码
启动执行器
# File minitest-5.25.4/lib/minitest/parallel.rb, line 26 def start @pool = Array.new(size) { Thread.new @queue do |queue| Thread.current.abort_on_exception = true while job = queue.pop do klass, method, reporter = job reporter.synchronize { reporter.prerecord klass, method } result = Minitest.run_one_method klass, method reporter.synchronize { reporter.record result } end end } end