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

Constant Summary collapse

TEST_METHOD_REGEX =
/^test./.freeze

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.



23
24
25
26
27
28
29
30
31
# File 'lib/assert/suite.rb', line 23

def initialize(config)
  @config       = config
  @tests        = []
  @test_methods = []
  @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.



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

def config
  @config
end

#end_timeObject

Returns the value of attribute end_time.



21
22
23
# File 'lib/assert/suite.rb', line 21

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.



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

def setups
  @setups
end

#start_timeObject

Returns the value of attribute start_time.



21
22
23
# File 'lib/assert/suite.rb', line 21

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.



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

def teardowns
  @teardowns
end

#test_methodsObject (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.



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

def test_methods
  @test_methods
end

Instance Method Details

#after_loadObject



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

def after_load;        end

#after_test(test) ⇒ Object



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

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



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

def before_load(test_files); end

#before_test(test) ⇒ Object



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

def before_test(test); end

#clear_tests_to_runObject



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

def clear_tests_to_run; @tests.clear;    end

#error_result_countObject



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

def error_result_count;  end

#fail_result_countObject



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

def fail_result_count;   end

#find_test_to_run(file_line) ⇒ Object



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

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

#ignore_result_countObject



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

def ignore_result_count; end

#inspectObject



98
99
100
101
102
# File 'lib/assert/suite.rb', line 98

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

#on_finishObject



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

def on_finish;         end

#on_interrupt(err) ⇒ Object



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

def on_interrupt(err); end

#on_result(result) ⇒ Object



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

def on_result(result); end

#on_startObject



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

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



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

def on_test(test)
  @tests << test
end

#pass_result_countObject



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

def pass_result_count;   end

#result_countObject



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

def result_count;        end

#result_rateObject



73
74
75
# File 'lib/assert/suite.rb', line 73

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

#run_timeObject



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

def run_time
  @end_time - @start_time
end

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



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

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

#skip_result_countObject



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

def skip_result_count;   end

#sorted_tests_to_run(&sort_by_proc) ⇒ Object



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

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

#suiteObject



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

def suite; self; end

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



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

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

#test_countObject



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

def test_count;          end

#test_rateObject



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

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

#tests_to_run?Boolean

Returns:

  • (Boolean)


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

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

#tests_to_run_countObject



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

def tests_to_run_count; @tests.size;     end