Class: Minitest::Queue::TestTimeReporter
- Inherits:
-
Reporters::BaseReporter
- Object
- Reporters::BaseReporter
- Minitest::Queue::TestTimeReporter
- Includes:
- CI::Queue::OutputHelpers
- Defined in:
- lib/minitest/queue/test_time_reporter.rb
Instance Method Summary collapse
-
#initialize(build:, limit: nil, percentile: nil, **options) ⇒ TestTimeReporter
constructor
A new instance of TestTimeReporter.
- #record ⇒ Object
- #report ⇒ Object
- #success? ⇒ Boolean
Constructor Details
#initialize(build:, limit: nil, percentile: nil, **options) ⇒ TestTimeReporter
Returns a new instance of TestTimeReporter.
9 10 11 12 13 14 15 |
# File 'lib/minitest/queue/test_time_reporter.rb', line 9 def initialize(build:, limit: nil, percentile: nil, **) super() @test_time_hash = build.fetch @limit = limit @percentile = percentile @success = true end |
Instance Method Details
#record ⇒ Object
42 43 44 |
# File 'lib/minitest/queue/test_time_reporter.rb', line 42 def record(*) raise NotImplementedError end |
#report ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/minitest/queue/test_time_reporter.rb', line 17 def report return if limit.nil? || test_time_hash.empty? puts '+++ Test Time Report' if offending_tests.empty? msg = "The #{humanized_percentile} of test execution time is within #{limit} milliseconds." puts green(msg) return end @success = false puts <<~EOS #{red("Detected #{offending_tests.size} test(s) over the desired time limit.")} Please make them faster than #{limit}ms in the #{humanized_percentile} percentile. EOS offending_tests.each do |test_name, duration| puts "#{red(test_name)}: #{duration}ms" end end |
#success? ⇒ Boolean
38 39 40 |
# File 'lib/minitest/queue/test_time_reporter.rb', line 38 def success? @success end |