lib/minitest/queue.rb in ci-queue-0.20.9 vs lib/minitest/queue.rb in ci-queue-0.21.0
- old
+ new
@@ -100,10 +100,14 @@
self.failures.unshift(Flaked.new(self.failures.shift))
end
end
end
+ module WithTimestamps
+ attr_accessor :start_timestamp, :finish_timestamp
+ end
+
module Queue
attr_writer :run_command_formatter, :project_root
def run_command_formatter
@run_command_formatter ||= if defined?(Rails) && defined?(Rails::TestUnitRailtie)
@@ -157,17 +161,34 @@
def <=>(other)
id <=> other.id
end
+ def with_timestamps
+ start_timestamp = current_timestamp
+ result = yield
+ result
+ ensure
+ result.start_timestamp = start_timestamp
+ result.finish_timestamp = current_timestamp
+ end
+
def run
- Minitest.run_one_method(@runnable, @method_name)
+ with_timestamps do
+ Minitest.run_one_method(@runnable, @method_name)
+ end
end
def flaky?
Minitest.queue.flaky?(self)
end
+
+ private
+
+ def current_timestamp
+ Time.now.to_i
+ end
end
attr_reader :queue
def queue=(queue)
@@ -242,12 +263,14 @@
MiniTest.singleton_class.prepend(MiniTest::Queue)
if defined? MiniTest::Result
MiniTest::Result.prepend(MiniTest::Requeueing)
MiniTest::Result.prepend(MiniTest::Flakiness)
+ MiniTest::Result.prepend(MiniTest::WithTimestamps)
else
MiniTest::Test.prepend(MiniTest::Requeueing)
MiniTest::Test.prepend(MiniTest::Flakiness)
+ MiniTest::Test.prepend(MiniTest::WithTimestamps)
module MinitestBackwardCompatibility
def source_location
method(name).source_location
end