Module: Etest

Defined in:
lib/etest.rb,
lib/etest.rb

Overview

Embedded test cases:

The Etest module contains methods to run etests.

Defined Under Namespace

Modules: Assertions, ComparisonAssertions Classes: TestCase

Class Method Summary collapse

Class Method Details

.auto_runObject



60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/etest.rb', line 60

def self.auto_run
  #
  # find all modules that are not named /::Etest$/, and try to load
  # the respective Etest module.
  etests = Module.instances.map { |mod|
    #next if mod.name =~ /\bEtest$/
    next if mod.name == "Object"
    
    Module.by_name "#{mod.name}::Etest"
  }.compact.uniq.sort_by(&:name)

  run(*etests)
end

.autorunObject



56
57
58
# File 'lib/etest.rb', line 56

def self.autorun
  auto_run
end

.run(*etests) ⇒ Object



74
75
76
77
78
79
80
81
82
83
# File 'lib/etest.rb', line 74

def self.run(*etests)
  #
  # convert all Etest modules into a test case
  test_cases = etests.map { |etest|
    dlog "Running", etest
    to_test_case etest
  }
  
  MiniTest::Unit::TestCase.run_etests(*test_cases)
end

.to_test_case(mod) ⇒ Object

convert an Etest moodule into a MiniTest testcase



87
88
89
90
91
92
93
94
95
96
# File 'lib/etest.rb', line 87

def self.to_test_case(mod)
  klass = Class.new TestCase
  klass.send :include, mod
  klass.send :include, Assertions

  Kernel.silent do
    mod.const_set("TestCase", klass)
  end
  klass
end