Module: DohTest

Extended by:
DohTest
Included in:
DohTest
Defined in:
lib/dohtest/failure.rb,
lib/dohtest/configure.rb,
lib/dohtest/assertions.rb,
lib/dohtest/test_group.rb,
lib/dohtest/group_runner.rb,
lib/dohtest/master_runner.rb,
lib/dohtest/require_paths.rb,
lib/dohtest/stream_output.rb,
lib/dohtest/capture_output.rb,
lib/dohtest/backtrace_parser.rb

Defined Under Namespace

Classes: BacktraceParser, CaptureOutput, Failure, GroupRunner, MasterRunner, StreamOutput, TestGroup

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.backtrace_summary(excpt) ⇒ Object



60
61
62
# File 'lib/dohtest/backtrace_parser.rb', line 60

def self.backtrace_summary(excpt)
  BacktraceParser.new(excpt.backtrace).summary
end

Instance Method Details

#add_default_config_valuesObject



50
51
52
53
# File 'lib/dohtest/configure.rb', line 50

def add_default_config_values
  DohTest.config[:glob] ||= '*.dt.rb'
  DohTest.config[:seed] ||= (Time.new.to_f * 1000).to_i
end

#configObject



4
5
6
# File 'lib/dohtest/configure.rb', line 4

def config
  @config ||= {}
end

#configure(start_path) ⇒ Object



55
56
57
58
# File 'lib/dohtest/configure.rb', line 55

def configure(start_path)
  load_configuration_files(start_path)
  add_default_config_values
end

#find_root(start_directory, max_tries = 20) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/dohtest/configure.rb', line 8

def find_root(start_directory, max_tries = 20)
  curr_directory = start_directory
  max_tries.times do
    return nil if curr_directory == '/'
    if File.directory?(File.join(curr_directory, 'test'))
      return curr_directory
    end
    curr_directory = File.expand_path(File.join(curr_directory, '..'))
  end
  nil
end

#load_configuration_files(start_path) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/dohtest/configure.rb', line 20

def load_configuration_files(start_path)
  start_path = File.expand_path(start_path || '.')
  if File.directory?(start_path)
    start_directory = start_path
  else
    start_directory = File.dirname(start_path)
  end
  root_directory = find_root(start_directory)
  raise "unable to determine root directory to run tests from" unless root_directory
  DohTest.config[:root] = root_directory

  libdir = File.join(root_directory, 'lib')
  if File.directory?(libdir) && !$LOAD_PATH.include?(libdir)
    $LOAD_PATH << libdir
  end

  cfgfile = File.join(root_directory, 'dohtest.rb')
  if File.exist?(cfgfile)
    require(cfgfile)
    return
  end

  cfgfile = File.join(root_directory, 'config', 'dohtest.rb')
  if File.exist?(cfgfile)
    require(cfgfile)
    return
  end

end

#require_paths(glob, paths) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/dohtest/require_paths.rb', line 4

def require_paths(glob, paths)
  retval = false
  paths.collect {|elem| File.expand_path(elem) }.each do |onepath|
    if File.directory?(onepath)
      Dir.glob(File.join(onepath, '**', glob)).each do |filename|
        retval = true
        require(filename)
      end
    else
      require(File.expand_path(onepath))
    end
  end
  retval
end