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.



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

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.



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

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



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

def test_methods
  @test_methods
end

Instance Method Details

#after_loadObject



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

def after_load;        end

#after_test(test) ⇒ Object



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

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



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

def before_load(test_files); end

#before_test(test) ⇒ Object



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

def before_test(test); end

#clear_tests_to_runObject



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

def clear_tests_to_run; @tests.clear;    end

#error_result_countObject



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

def error_result_count;  end

#fail_result_countObject



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

def fail_result_count;   end

#find_test_to_run(file_line) ⇒ Object



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

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

#ignore_result_countObject



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

def ignore_result_count; end

#inspectObject



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

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

#on_finishObject



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

def on_finish;         end

#on_info(test) ⇒ Object



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

def on_info(test);     end

#on_interrupt(err) ⇒ Object



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

def on_interrupt(err); end

#on_result(result) ⇒ Object



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

def on_result(result); end

#on_startObject



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

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



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

def on_test(test)
  @tests << test
end

#pass_result_countObject



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

def pass_result_count;   end

#result_countObject



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

def result_count;        end

#result_rateObject



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

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

#run_timeObject



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

def run_time
  @end_time - @start_time
end

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



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

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

#skip_result_countObject



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

def skip_result_count;   end

#sorted_tests_to_run(&sort_by_proc) ⇒ Object



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

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

#suiteObject



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

def suite; self; end

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



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

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

#test_countObject



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

def test_count;          end

#test_rateObject



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

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

#tests_to_run?Boolean

Returns:

  • (Boolean)


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

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

#tests_to_run_countObject



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

def tests_to_run_count; @tests.size;     end