Class: Grntest::Worker
- Inherits:
-
Object
- Object
- Grntest::Worker
- Defined in:
- lib/grntest/worker.rb
Instance Attribute Summary collapse
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#reporter ⇒ Object
readonly
Returns the value of attribute reporter.
-
#result ⇒ Object
readonly
Returns the value of attribute result.
-
#status ⇒ Object
readonly
Returns the value of attribute status.
-
#suite_name ⇒ Object
readonly
Returns the value of attribute suite_name.
-
#test_name ⇒ Object
readonly
Returns the value of attribute test_name.
-
#test_script_path ⇒ Object
readonly
Returns the value of attribute test_script_path.
-
#tester ⇒ Object
readonly
Returns the value of attribute tester.
Instance Method Summary collapse
-
#initialize(id, tester, test_suites_result, reporter) ⇒ Worker
constructor
A new instance of Worker.
- #interrupt ⇒ Object
- #interruptted? ⇒ Boolean
- #on_test_failure(result) ⇒ Object
- #on_test_finish(result) ⇒ Object
- #on_test_leak(result) ⇒ Object
- #on_test_no_check(result) ⇒ Object
- #on_test_omission(result) ⇒ Object
- #on_test_start ⇒ Object
- #on_test_success(result) ⇒ Object
- #run(queue) ⇒ Object
Constructor Details
#initialize(id, tester, test_suites_result, reporter) ⇒ Worker
Returns a new instance of Worker.
70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/grntest/worker.rb', line 70 def initialize(id, tester, test_suites_result, reporter) @id = id @tester = tester @test_suites_result = test_suites_result @reporter = reporter @suite_name = nil @test_script_path = nil @test_name = nil @interruptted = false @status = "not running" @result = WorkerResult.new end |
Instance Attribute Details
#id ⇒ Object (readonly)
Returns the value of attribute id.
68 69 70 |
# File 'lib/grntest/worker.rb', line 68 def id @id end |
#reporter ⇒ Object (readonly)
Returns the value of attribute reporter.
68 69 70 |
# File 'lib/grntest/worker.rb', line 68 def reporter @reporter end |
#result ⇒ Object (readonly)
Returns the value of attribute result.
69 70 71 |
# File 'lib/grntest/worker.rb', line 69 def result @result end |
#status ⇒ Object (readonly)
Returns the value of attribute status.
69 70 71 |
# File 'lib/grntest/worker.rb', line 69 def status @status end |
#suite_name ⇒ Object (readonly)
Returns the value of attribute suite_name.
69 70 71 |
# File 'lib/grntest/worker.rb', line 69 def suite_name @suite_name end |
#test_name ⇒ Object (readonly)
Returns the value of attribute test_name.
69 70 71 |
# File 'lib/grntest/worker.rb', line 69 def test_name @test_name end |
#test_script_path ⇒ Object (readonly)
Returns the value of attribute test_script_path.
69 70 71 |
# File 'lib/grntest/worker.rb', line 69 def test_script_path @test_script_path end |
#tester ⇒ Object (readonly)
Returns the value of attribute tester.
68 69 70 |
# File 'lib/grntest/worker.rb', line 68 def tester @tester end |
Instance Method Details
#interrupt ⇒ Object
83 84 85 |
# File 'lib/grntest/worker.rb', line 83 def interrupt @interruptted = true end |
#interruptted? ⇒ Boolean
87 88 89 |
# File 'lib/grntest/worker.rb', line 87 def interruptted? @interruptted end |
#on_test_failure(result) ⇒ Object
139 140 141 142 143 |
# File 'lib/grntest/worker.rb', line 139 def on_test_failure(result) @status = "failed" @result.on_test_failure(test_name) @reporter.on_test_failure(self, result) end |
#on_test_finish(result) ⇒ Object
167 168 169 170 |
# File 'lib/grntest/worker.rb', line 167 def on_test_finish(result) @result.on_test_finish @reporter.on_test_finish(self, result) end |
#on_test_leak(result) ⇒ Object
145 146 147 148 149 |
# File 'lib/grntest/worker.rb', line 145 def on_test_leak(result) @status = "leaked(#{result.n_leaked_objects})" @result.on_test_leak(test_name) @reporter.on_test_leak(self, result) end |
#on_test_no_check(result) ⇒ Object
161 162 163 164 165 |
# File 'lib/grntest/worker.rb', line 161 def on_test_no_check(result) @status = "not checked" @result.on_test_no_check @reporter.on_test_no_check(self, result) end |
#on_test_omission(result) ⇒ Object
151 152 153 154 155 156 157 158 159 |
# File 'lib/grntest/worker.rb', line 151 def on_test_omission(result) @status = "omitted" @result.on_test_omission if @tester.suppress_omit_log? @reporter.on_test_omission_suppressed(self, result) else @reporter.on_test_omission(self, result) end end |
#on_test_start ⇒ Object
127 128 129 130 131 |
# File 'lib/grntest/worker.rb', line 127 def on_test_start @status = "running" @test_result = nil @reporter.on_test_start(self) end |
#on_test_success(result) ⇒ Object
133 134 135 136 137 |
# File 'lib/grntest/worker.rb', line 133 def on_test_success(result) @status = "passed" @result.on_test_success @reporter.on_test_success(self, result) end |
#run(queue) ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/grntest/worker.rb', line 91 def run(queue) succeeded = true @result.measure do @reporter.on_worker_start(self) catch do |tag| loop do suite_name, test_script_path, test_name = queue.pop break if test_script_path.nil? unless @suite_name == suite_name @reporter.on_suite_finish(self) if @suite_name @suite_name = suite_name @reporter.on_suite_start(self) end unless run_test(test_script_path, test_name) succeeded = false end break if interruptted? if @tester.stop_on_failure? and @test_suites_result.have_failure? break end end @status = "finished" @reporter.on_suite_finish(@suite_name) if @suite_name @suite_name = nil end end @reporter.on_worker_finish(self) succeeded end |