Module: Chukan::Test
- Defined in:
- lib/chukan.rb
Defined Under Namespace
Modules: Color
Constant Summary collapse
- SEPARATOR =
"\n"
- @@start =
nil
- @@cases =
Hash.new {|hash,key| hash[key] = [0,0,0] }
- @@count =
0
- @@data =
nil
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(mod) ⇒ Object
440 441 442 443 444 445 |
# File 'lib/chukan.rb', line 440 def self.included(mod) unless @@start ObjectSpace.define_finalizer(mod, report) @@start = Time.now end end |
.report ⇒ Object
423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 |
# File 'lib/chukan.rb', line 423 def self.report proc { finish = Time.now puts "\n1..#{@@count}" $stderr.puts "Finished in #{finish - @@start} seconds." $stderr.puts "" succes = @@cases.to_a.inject(0) {|r,(n,c)| r + c[0] } failure = @@cases.to_a.inject(0) {|r,(n,c)| r + c[1] } error = @@cases.to_a.inject(0) {|r,(n,c)| r + c[2] } $stderr.puts "#{@@cases.size} tests, " + "#{succes+failure+error} assertions, " + "#{Color::FAIL}#{failure} failures, " + "#{Color::ERROR}#{error} errors" + "#{Color::NORMAL}" } end |
Instance Method Details
#data ⇒ Object
464 465 466 467 468 469 470 471 472 473 474 475 |
# File 'lib/chukan.rb', line 464 def data require 'yaml' @@data ||= YAML.load_stream(DATA.read.gsub(/(^\t+)/) { ' ' * $+.length }).documents.map {|obj| obj.each_pair {|k,v| (class<<obj; self; end).instance_eval do define_method(k) { v } end rescue nil } rescue obj } end |
#run(&block) ⇒ Object
477 478 479 480 481 |
# File 'lib/chukan.rb', line 477 def run(&block) data.each {|d| yield d } end |
#test(name = nil, directive = nil, &block) ⇒ Object
447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 |
# File 'lib/chukan.rb', line 447 def test(name = nil, directive = nil, &block) if yield tap(Color::SUCCESS, "ok", @@count+=1, name, directive) @@cases[name][0] += 1 else tap(Color::FAIL, "not ok", @@count+=1, name, directive) print_backtrace(caller, "test failed") @@cases[name][1] += 1 end rescue Exception tap(Color::ERROR, "not ok", @@count+=1, name, directive) print_backtrace($!.backtrace, "#{$!} (#{$!.class})") @@cases[name][2] += 1 ensure print Color::NORMAL end |