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.



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

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.



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

def config
  @config
end

#end_timeObject

Returns the value of attribute end_time.



19
20
21
# File 'lib/assert/suite.rb', line 19

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.



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

def setups
  @setups
end

#start_timeObject

Returns the value of attribute start_time.



19
20
21
# File 'lib/assert/suite.rb', line 19

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.



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

def teardowns
  @teardowns
end

Instance Method Details

#after_loadObject



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

def after_load;        end

#after_test(test) ⇒ Object



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

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



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

def before_load(test_files); end

#before_test(test) ⇒ Object



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

def before_test(test); end

#clear_tests_to_runObject



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

def clear_tests_to_run; @tests.clear;    end

#error_result_countObject



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

def error_result_count;  end

#fail_result_countObject



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

def fail_result_count;   end

#find_test_to_run(file_line) ⇒ Object



46
47
48
# File 'lib/assert/suite.rb', line 46

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

#ignore_result_countObject



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

def ignore_result_count; end

#inspectObject



96
97
98
99
100
# File 'lib/assert/suite.rb', line 96

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

#on_finishObject



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

def on_finish;         end

#on_info(test) ⇒ Object



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

def on_info(test);     end

#on_interrupt(err) ⇒ Object



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

def on_interrupt(err); end

#on_result(result) ⇒ Object



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

def on_result(result); end

#on_startObject



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

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



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

def on_test(test)
  @tests << test
end

#pass_result_countObject



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

def pass_result_count;   end

#result_countObject



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

def result_count;        end

#result_rateObject



70
71
72
# File 'lib/assert/suite.rb', line 70

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

#run_timeObject



62
63
64
# File 'lib/assert/suite.rb', line 62

def run_time
  @end_time - @start_time
end

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



32
33
34
# File 'lib/assert/suite.rb', line 32

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

#skip_result_countObject



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

def skip_result_count;   end

#sorted_tests_to_run(&sort_by_proc) ⇒ Object



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

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

#suiteObject



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

def suite; self; end

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



37
38
39
# File 'lib/assert/suite.rb', line 37

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

#test_countObject



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

def test_count;          end

#test_rateObject



66
67
68
# File 'lib/assert/suite.rb', line 66

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

#tests_to_run?Boolean

Returns:

  • (Boolean)


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

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

#tests_to_run_countObject



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

def tests_to_run_count; @tests.size;     end