Class: Toaster::TestSuite
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Toaster::TestSuite
- Defined in:
- lib/toaster/test/test_suite.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add_test_results(res, prefix = "", preset_values = {}) ⇒ Object
- #automation_name ⇒ Object
- #automation_version ⇒ Object
- #contains_equal_test?(test_case) ⇒ Boolean
- #coverage_goal ⇒ Object
- #executed_test_cases ⇒ Object
- #first_test ⇒ Object
-
#get_gross_duration ⇒ Object
Returns the total gross duration of all test cases in this suite.
-
#get_net_duration ⇒ Object
Returns the total net duration of all test cases in this suite.
-
#initialize(attr_hash) ⇒ TestSuite
constructor
A new instance of TestSuite.
- #last_test ⇒ Object
- #last_test_time ⇒ Object
- #query_unfinished_tests ⇒ Object
- #test_cases_failed ⇒ Object
- #test_cases_finished ⇒ Object
- #test_cases_sorted(cases = test_cases) ⇒ Object
- #test_cases_succeeded ⇒ Object
Constructor Details
#initialize(attr_hash) ⇒ TestSuite
26 27 28 29 30 31 32 33 34 |
# File 'lib/toaster/test/test_suite.rb', line 26 def initialize(attr_hash) if !attr_hash[:uuid] attr_hash[:uuid] = Util.generate_short_uid() end if !attr_hash[:test_coverage_goal] attr_hash[:test_coverage_goal] = TestCoverageGoal.new end super(attr_hash) end |
Class Method Details
.find(criteria = {}) ⇒ Object
138 139 140 |
# File 'lib/toaster/test/test_suite.rb', line 138 def self.find(criteria={}) DB.find_activerecord(TestSuite, criteria) end |
.get_uuids ⇒ Object
79 80 81 |
# File 'lib/toaster/test/test_suite.rb', line 79 def self.get_uuids() return find().collect { |suite| suite.uuid } end |
.load(id, load_associations = true) ⇒ Object
134 135 136 137 |
# File 'lib/toaster/test/test_suite.rb', line 134 def self.load(id, load_associations = true) return nil if !id find(id) end |
Instance Method Details
#add_test_results(res, prefix = "", preset_values = {}) ⇒ Object
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/toaster/test/test_suite.rb', line 113 def add_test_results(res, prefix="", preset_values={}) res.add_entry("#{prefix}numTests", test_cases.size) res.add_entry("#{prefix}numTestsFinished", test_cases_finished.size) res.add_entry("#{prefix}numTestsOpen", test_cases.size - test_cases_finished.size) res.add_entry("#{prefix}numTestsFailed", test_cases_failed.size) res.add_entry("#{prefix}numTestsSuccess", test_cases_succeeded.size) res.add_entry("#{prefix}percTestsFailed", test_cases_failed.size.to_f / test_cases.size.to_f) res.add_entry("#{prefix}percTestsSuccess", test_cases_succeeded.size.to_f / test_cases.size.to_f) #res.add_entry("#{prefix}numConvProps", preset_values["numConvProps"] ? preset_values["numConvProps"] : # Convergence.convergence_for_automation(@automation).size) res.add_entry("#{prefix}numAutoTasks", @automation.tasks.size) res.add_entry("#{prefix}durationGross", get_gross_duration()) res.add_entry("#{prefix}durationNet", get_net_duration()) test_cases_sorted.each_with_index do |test,idx| res.add_entry("#{prefix}t#{idx}startTime", test.start_time) res.add_entry("#{prefix}t#{idx}durationGross", test.get_gross_duration) res.add_entry("#{prefix}t#{idx}durationNet", test.get_net_duration) res.add_entry("#{prefix}t#{idx}success", test.success ? 1 : 0) end end |
#automation_name ⇒ Object
58 59 60 |
# File 'lib/toaster/test/test_suite.rb', line 58 def automation_name() return automation ? automation.name : "n/a" end |
#automation_version ⇒ Object
61 62 63 |
# File 'lib/toaster/test/test_suite.rb', line 61 def automation_version() return automation ? automation.version : "n/a" end |
#contains_equal_test?(test_case) ⇒ Boolean
70 71 72 73 74 75 76 77 |
# File 'lib/toaster/test/test_suite.rb', line 70 def contains_equal_test?(test_case) test_cases.each do |test| if test.eql?(test_case) return true end end return false end |
#coverage_goal ⇒ Object
54 55 56 |
# File 'lib/toaster/test/test_suite.rb', line 54 def coverage_goal test_coverage_goal end |
#executed_test_cases ⇒ Object
99 100 101 102 103 |
# File 'lib/toaster/test/test_suite.rb', line 99 def executed_test_cases test_cases.select { |c| c.start_time && !("#{c.start_time}".empty?) } end |
#first_test ⇒ Object
104 105 106 107 |
# File 'lib/toaster/test/test_suite.rb', line 104 def first_test cases_copy = test_cases_sorted(executed_test_cases) return cases_copy.empty? ? nil : cases_copy[0] end |
#get_gross_duration ⇒ Object
Returns the total gross duration of all test cases in this suite. Gross duration includes times for initialization + actual test execution + cleanup.
39 40 41 42 |
# File 'lib/toaster/test/test_suite.rb', line 39 def get_gross_duration() durations = test_cases.collect{ |c| c.get_gross_duration() } return durations.reduce(:+) end |
#get_net_duration ⇒ Object
Returns the total net duration of all test cases in this suite. Net duration includes times for the actual test execution (not including initialization or cleanup).
47 48 49 50 51 52 |
# File 'lib/toaster/test/test_suite.rb', line 47 def get_net_duration() durations = test_cases.collect{ |c| c.get_net_duration() } return durations.reduce(:+) end |
#last_test ⇒ Object
108 109 110 111 |
# File 'lib/toaster/test/test_suite.rb', line 108 def last_test cases_copy = test_cases_sorted(executed_test_cases) return cases_copy.empty? ? nil : cases_copy[-1] end |
#last_test_time ⇒ Object
65 66 67 68 |
# File 'lib/toaster/test/test_suite.rb', line 65 def last_test_time() l = last_test return l ? l.start_time : "n/a" end |
#query_unfinished_tests ⇒ Object
142 143 144 145 146 147 |
# File 'lib/toaster/test/test_suite.rb', line 142 def query_unfinished_tests return TestCase.find( :automation_run => nil, :test_suite_id => id ) end |
#test_cases_failed ⇒ Object
93 94 95 |
# File 'lib/toaster/test/test_suite.rb', line 93 def test_cases_failed return test_cases.select { |test| test.success == false } end |
#test_cases_finished ⇒ Object
83 84 85 |
# File 'lib/toaster/test/test_suite.rb', line 83 def test_cases_finished return test_cases.select { |test| test.executed? } end |
#test_cases_sorted(cases = test_cases) ⇒ Object
86 87 88 89 90 91 92 |
# File 'lib/toaster/test/test_suite.rb', line 86 def test_cases_sorted(cases=test_cases) return cases.sort { |x,y| !x.start_time ? 1 : !y.start_time ? -1 : x.start_time <=> y.start_time } end |
#test_cases_succeeded ⇒ Object
96 97 98 |
# File 'lib/toaster/test/test_suite.rb', line 96 def test_cases_succeeded return test_cases.select { |test| test.success == true } end |