Class: Assert::Suite

Inherits:
Object
  • Object
show all
Includes:
ConfigHelpers
Defined in:
lib/assert/suite.rb

Overview

This is the base suite. It loads the tests to run in memory and provides methods for these tests that the runner/view uses for handling and presentation purposes. It also stores suite-level setups and teardowns. Override the test/result count methods and the callbacks as needed. See the default suite for example usage.

Direct Known Subclasses

DefaultSuite

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ConfigHelpers

#all_pass?, #formatted_result_rate, #formatted_run_time, #formatted_suite_result_rate, #formatted_suite_run_time, #formatted_suite_test_rate, #formatted_test_rate, #ocurring_result_types, #runner, #runner_seed, #show_test_profile_info?, #show_test_verbose_info?, #single_test?, #single_test_file_line, #view

Constructor Details

#initialize(config) ⇒ Suite

Returns a new instance of Suite.



19
20
21
22
23
24
25
26
# File 'lib/assert/suite.rb', line 19

def initialize(config)
  @config     = config
  @tests      = []
  @setups     = []
  @teardowns  = []
  @start_time = Time.now
  @end_time   = @start_time
end

Instance Attribute Details

#configObject (readonly)

A suite is a set of tests to run. When a test class subclasses the Context class, that test class is pushed to the suite.



16
17
18
# File 'lib/assert/suite.rb', line 16

def config
  @config
end

#end_timeObject

Returns the value of attribute end_time.



17
18
19
# File 'lib/assert/suite.rb', line 17

def end_time
  @end_time
end

#setupsObject (readonly)

A suite is a set of tests to run. When a test class subclasses the Context class, that test class is pushed to the suite.



16
17
18
# File 'lib/assert/suite.rb', line 16

def setups
  @setups
end

#start_timeObject

Returns the value of attribute start_time.



17
18
19
# File 'lib/assert/suite.rb', line 17

def start_time
  @start_time
end

#teardownsObject (readonly)

A suite is a set of tests to run. When a test class subclasses the Context class, that test class is pushed to the suite.



16
17
18
# File 'lib/assert/suite.rb', line 16

def teardowns
  @teardowns
end

Instance Method Details

#after_loadObject



85
# File 'lib/assert/suite.rb', line 85

def after_load;        end

#after_test(test) ⇒ Object



89
# File 'lib/assert/suite.rb', line 89

def after_test(test);  end

#before_load(test_files) ⇒ Object

define callback handlers to do special behavior during the test run. These will be called by the test runner



77
# File 'lib/assert/suite.rb', line 77

def before_load(test_files); end

#before_test(test) ⇒ Object



87
# File 'lib/assert/suite.rb', line 87

def before_test(test); end

#clear_tests_to_runObject



42
# File 'lib/assert/suite.rb', line 42

def clear_tests_to_run; @tests.clear;    end

#error_result_countObject



56
# File 'lib/assert/suite.rb', line 56

def error_result_count;  end

#fail_result_countObject



55
# File 'lib/assert/suite.rb', line 55

def fail_result_count;   end

#find_test_to_run(file_line) ⇒ Object



44
45
46
# File 'lib/assert/suite.rb', line 44

def find_test_to_run(file_line)
  @tests.find{ |t| t.file_line == file_line }
end

#ignore_result_countObject



58
# File 'lib/assert/suite.rb', line 58

def ignore_result_count; end

#inspectObject



94
95
96
97
98
# File 'lib/assert/suite.rb', line 94

def inspect
  "#<#{self.class}:#{"0x0%x" % (object_id << 1)}"\
  " test_count=#{self.test_count.inspect}"\
  " result_count=#{self.result_count.inspect}>"
end

#on_finishObject



90
# File 'lib/assert/suite.rb', line 90

def on_finish;         end

#on_info(test) ⇒ Object



91
# File 'lib/assert/suite.rb', line 91

def on_info(test);     end

#on_interrupt(err) ⇒ Object



92
# File 'lib/assert/suite.rb', line 92

def on_interrupt(err); end

#on_result(result) ⇒ Object



88
# File 'lib/assert/suite.rb', line 88

def on_result(result); end

#on_startObject



86
# File 'lib/assert/suite.rb', line 86

def on_start;          end

#on_test(test) ⇒ Object

this is required to load tests into the suite, be sure to ‘super` if you override this method



81
82
83
# File 'lib/assert/suite.rb', line 81

def on_test(test)
  @tests << test
end

#pass_result_countObject



54
# File 'lib/assert/suite.rb', line 54

def pass_result_count;   end

#result_countObject



53
# File 'lib/assert/suite.rb', line 53

def result_count;        end

#result_rateObject



68
69
70
# File 'lib/assert/suite.rb', line 68

def result_rate
  get_rate(self.result_count, self.run_time)
end

#run_timeObject



60
61
62
# File 'lib/assert/suite.rb', line 60

def run_time
  @end_time - @start_time
end

#setup(&block) ⇒ Object Also known as: startup



30
31
32
# File 'lib/assert/suite.rb', line 30

def setup(&block)
  self.setups << (block || proc{})
end

#skip_result_countObject



57
# File 'lib/assert/suite.rb', line 57

def skip_result_count;   end

#sorted_tests_to_run(&sort_by_proc) ⇒ Object



48
49
50
# File 'lib/assert/suite.rb', line 48

def sorted_tests_to_run(&sort_by_proc)
  @tests.sort.sort_by(&sort_by_proc)
end

#suiteObject



28
# File 'lib/assert/suite.rb', line 28

def suite; self; end

#teardown(&block) ⇒ Object Also known as: shutdown



35
36
37
# File 'lib/assert/suite.rb', line 35

def teardown(&block)
  self.teardowns << (block || proc{})
end

#test_countObject



52
# File 'lib/assert/suite.rb', line 52

def test_count;          end

#test_rateObject



64
65
66
# File 'lib/assert/suite.rb', line 64

def test_rate
  get_rate(self.test_count, self.run_time)
end

#tests_to_run?Boolean

Returns:



40
# File 'lib/assert/suite.rb', line 40

def tests_to_run?;      @tests.size > 0; end

#tests_to_run_countObject



41
# File 'lib/assert/suite.rb', line 41

def tests_to_run_count; @tests.size;     end