lib/tryouts.rb in tryouts-2.0.4 vs lib/tryouts.rb in tryouts-2.1.0

- old
+ new

@@ -10,14 +10,11 @@ module VERSION def self.to_s load_config [@version[:MAJOR], @version[:MINOR], @version[:PATCH]].join('.') end - def self.inspect - load_config - [@version[:MAJOR], @version[:MINOR], @version[:PATCH], @version[:BUILD]].join('.') - end + alias_method :inspect, :to_s def self.load_config require 'yaml' @version ||= YAML.load_file(File.join(TRYOUTS_LIB_HOME, '..', 'VERSION.yml')) end end @@ -25,15 +22,16 @@ class Tryouts @debug = false @quiet = false + @noisy = false @container = Class.new @cases = [] @sysinfo = nil class << self - attr_accessor :debug, :container, :quiet + attr_accessor :debug, :container, :quiet, :noisy attr_reader :cases def sysinfo require 'sysinfo' @sysinfo ||= SysInfo.new @@ -54,34 +52,46 @@ batches.each do |batch| path = batch.path.gsub(/#{Dir.pwd}\/?/, '') - msg '%-60s %s' % [path, ''] unless Tryouts.quiet # status + vmsg '%-60s %s' % [path, ''] before_handler = Proc.new do |t| - msg Console.reverse(' %-58s ' % [t.desc.to_s]) unless Tryouts.quiet - msg t.test.inspect, t.exps.inspect unless Tryouts.quiet + if Tryouts.noisy + vmsg Console.reverse(' %-58s ' % [t.desc.to_s]) + vmsg t.test.inspect, t.exps.inspect + end end batch.run(before_handler) do |t| if t.failed? failed_tests += 1 - msg Console.color(:red, t.failed.join($/)), $/ unless Tryouts.quiet + if Tryouts.noisy + vmsg Console.color(:red, t.failed.join($/)), $/ + else + msg ' %s (%s:%s)' % [Console.color(:red, "FAIL"), path, t.exps.first] + end elsif t.skipped? || !t.run? skipped_tests += 1 - msg Console.bright(t.skipped.join($/)), $/ unless Tryouts.quiet + if Tryouts.noisy + vmsg Console.bright(t.skipped.join($/)), $/ + else + msg ' SKIP (%s:%s)' % [path, t.exps.first] + end else - msg Console.color(:green, t.passed.join($/)), $/ unless Tryouts.quiet + if Tryouts.noisy + vmsg Console.color(:green, t.passed.join($/)), $/ + else + msg ' %s' % [Console.color(:green, 'PASS')] + end end - all += 1 - end end - msg unless Tryouts.quiet + msg if all > 0 suffix = 'tests passed' suffix << " (and #{skipped_tests} skipped)" if skipped_tests > 0 msg cformat(all-failed_tests-skipped_tests, all-skipped_tests, suffix) if all-skipped_tests > 0 end @@ -95,11 +105,11 @@ failed_tests # 0 means success end def cformat(*args) - Console.bright '%3d of %d %s' % args + Console.bright '%d of %d %s' % args end def run path batch = parse path batch.run @@ -173,15 +183,20 @@ batch end def print str + return if Tryouts.quiet STDOUT.print str STDOUT.flush end + def vmsg *msg + STDOUT.puts *msg if !Tryouts.quiet && Tryouts.noisy + end + def msg *msg - STDOUT.puts *msg + STDOUT.puts *msg unless Tryouts.quiet end def err *msg msg.each do |line| STDERR.puts Console.color :red, line