Module: Neospec::Report::Basic
- Defined in:
- lib/neospec/report/basic.rb
Class Method Summary collapse
- .call(results, output: $stdout) ⇒ Object
- .failures(results) ⇒ Object
- .formatted_duration(duration) ⇒ Object
- .successes(results) ⇒ Object
Class Method Details
.call(results, output: $stdout) ⇒ Object
4 5 6 |
# File 'lib/neospec/report/basic.rb', line 4 def self.call(results, output: $stdout) output.puts "\n#{successes(results)}#{failures(results)}" end |
.failures(results) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/neospec/report/basic.rb', line 18 def self.failures(results) return if results.successful? output = "\n Failures:\t#{results.failures.size}\n\n" output << "Failures:\n" results.specs.select { |spec| spec.failures.any? }.each do |spec| output << " #{Neospec::Color::BLUE}== #{spec.description} ==#{Neospec::Color::RESET}\n" spec.failures.map do |failure| output << " #{Neospec::Color::RED}-- #{failure.} --#{Neospec::Color::RESET}\n" failure.stack.first(5).each do |location| output << " > #{location}\n" end output << "\n" end end output.chomp("\n\n") end |
.formatted_duration(duration) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/neospec/report/basic.rb', line 39 def self.formatted_duration(duration) if duration < 1 "#{(duration * 1000).round(2)} milliseconds" elsif duration < 60 "#{duration.round(2)} seconds" elsif duration < 3600 minutes = (duration / 60).to_i seconds = (duration % 60).to_i "#{minutes} minute#{"s" unless minutes == 1} #{seconds} second#{"s" unless seconds == 1}" elsif duration < 86400 hours = (duration / 3600).to_i minutes = ((duration % 3600) / 60).to_i "#{hours} hour#{"s" unless hours == 1} #{minutes} minute#{"s" unless minutes == 1}" else days = (duration / 86400).to_i hours = ((duration % 86400) / 3600).to_i "#{days} day#{"s" unless days == 1} #{hours} hour#{"s" unless hours == 1}" end end |
.successes(results) ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/neospec/report/basic.rb', line 8 def self.successes(results) <<~STR.chomp Finished in #{formatted_duration(results.duration)} Results: Specs:\t#{results.specs.size} Expectations:\t#{results.expectations} STR end |