Changeset 106
- Timestamp:
- 01/25/11 21:11:54 (16 months ago)
- Location:
- trunk
- Files:
-
- 5 modified
-
Makefile (modified) (1 diff)
-
RELEASE (modified) (2 diffs)
-
src/mgunit.pro (modified) (3 diffs)
-
src/mguttestcase__define.pro (modified) (6 diffs)
-
src/mguttestsuite__define.pro (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Makefile
r94 r106 1 VERSION=1. 11 VERSION=1.2dev 2 2 REVISION=r`svn info | sed -n 's/Revision: \(.*\)/\1/p'` 3 3 RELEASE="$(VERSION)-$(REVISION)" -
trunk/RELEASE
r95 r106 2 2 Release notes 3 3 ------------- 4 5 mgunit 1.2 6 ---------- 7 8 * Added FAILURES_ONLY keyword to display only failured tests. 9 4 10 5 11 mgunit 1.1 … … 20 26 * Fixed memory leak. 21 27 22 23 28 24 29 mgunit 1.0 -
trunk/src/mgunit.pro
r103 r106 53 53 pro mgunit, tests, filename=filename, html=html, xml=xml, gui=gui, junit=junit, $ 54 54 color=color, $ 55 npass=npass, nfail=nfail, nskip=nskip, ntests=ntests 55 npass=npass, nfail=nfail, nskip=nskip, ntests=ntests, $ 56 failures_only=failuresOnly 56 57 compile_opt strictarr 57 58 … … 74 75 testsuite = obj_new('MGutTestSuite', $ 75 76 test_runner=testRunner, $ 76 name='All tests') 77 name='All tests', $ 78 failures_only=failuresOnly) 77 79 78 80 testRunner->add, obj_new(runnerName, parent=testRunner, $ … … 82 84 testsuite->add, tests 83 85 testsuite->run 86 if (keyword_set(failuresOnly)) then testsuite->display 84 87 testsuite->getProperty, npass=npass, nfail=nfail, nskip=nskip, $ 85 88 ntests=ntests -
trunk/src/mguttestcase__define.pro
r104 r106 136 136 end 137 137 138 138 139 pro mguttestcase::display 140 compile_opt strictarr 141 142 if (self.nfail eq 0L) then return 143 144 self.testRunner->reportTestCaseStart, strlowcase(obj_class(self)), $ 145 ntests=self.ntests, $ 146 level=self.level 147 for t = 0L, self.ntests - 1L do begin 148 if ((*self.passes)[t] eq 0B) then begin 149 self.testRunner->reportTestStart, (*self.testnames)[t], level=self.level 150 self.testRunner->reportTestResult, (*self.logmsgs)[t], passed=(*self.passes)[t], $ 151 skipped=self.skipped, $ 152 time=self.time, level=self.level 153 endif 154 endfor 155 156 self.testRunner->reportTestCaseResult, npass=self.npass, $ 157 nfail=self.nfail, $ 158 nskip=self.nskip, $ 159 level=self.level 160 end 161 162 139 163 ;+ 140 164 ; Run the tests for this class (i.e. methods with names that start with … … 148 172 self.nskip = 0L 149 173 150 self.testRunner->reportTestCaseStart, strlowcase(obj_class(self)), $ 151 ntests=self.ntests, $ 152 level=self.level 174 if (~self.failuresOnly) then begin 175 self.testRunner->reportTestCaseStart, strlowcase(obj_class(self)), $ 176 ntests=self.ntests, $ 177 level=self.level 178 endif 153 179 154 180 ; run each test 155 181 for t = 0L, self.ntests - 1L do begin 156 self.testRunner->reportTestStart, (*self.testnames)[t], level=self.level 182 if (~self.failuresOnly) then begin 183 self.testRunner->reportTestStart, (*self.testnames)[t], level=self.level 184 endif 157 185 158 186 result = 0L ; assume test failed … … 205 233 ? '' $ 206 234 : msg) 207 208 self.testRunner->reportTestResult, logMsg, passed=passed, $ 209 skipped=self.skipped, $ 210 time=self.time, level=self.level 235 236 (*self.logmsgs)[t] = logMsg 237 (*self.passes)[t] = passed 238 if (~self.failuresOnly) then begin 239 self.testRunner->reportTestResult, logMsg, passed=passed, $ 240 skipped=self.skipped, $ 241 time=self.time, level=self.level 242 endif 211 243 endfor 212 244 213 self.testRunner->reportTestCaseResult, npass=self.npass, $ 214 nfail=self.nfail, $ 215 nskip=self.nskip, $ 216 level=self.level 245 if (~self.failuresOnly) then begin 246 self.testRunner->reportTestCaseResult, npass=self.npass, $ 247 nfail=self.nfail, $ 248 nskip=self.nskip, $ 249 level=self.level 250 endif 217 251 end 218 252 … … 307 341 ; subclass of `MGutTestRunner` 308 342 ;- 309 function mguttestcase::init, test_runner=testRunner 343 function mguttestcase::init, test_runner=testRunner, failures_only=failuresOnly 310 344 compile_opt strictarr 311 345 312 346 self.testRunner = testRunner 313 347 self.failuresOnly = keyword_set(failuresOnly) 348 314 349 self.testnames = ptr_new(/allocate_heap) 350 self.logmsgs = ptr_new(/allocate_heap) 351 self.passes = ptr_new(/allocate_heap) 352 315 353 self->findTestnames 316 354 355 *self.logmsgs = strarr(n_elements(*self.testnames)) 356 *self.passes = bytarr(n_elements(*self.testnames)) 357 317 358 self.level = 0L 318 359 … … 346 387 testRunner: obj_new(), $ 347 388 testnames: ptr_new(), $ 389 logmsgs: ptr_new(), $ 390 passes: ptr_new(), $ 348 391 level: 0L, $ 349 392 ntests: 0L, $ … … 352 395 nskip: 0L, $ 353 396 time: 0.0D, $ 354 skipped: 0B $ 397 skipped: 0B, $ 398 failuresOnly: 0B $ 355 399 } 356 400 end -
trunk/src/mguttestsuite__define.pro
r104 r106 41 41 ; 0 if no error and 1 if an error 42 42 ; _extra : in, optional, type=keywords 43 ; keywords to OBJ_NEWfor test cases and test suites43 ; keywords to `OBJ_NEW` for test cases and test suites 44 44 ;- 45 45 function mguttestsuite::_makeTestCase, testName, error=error, _extra=e … … 55 55 self->_recompile, testName 56 56 57 return, obj_new(testName, test_runner=self.testRunner, _strict_extra=e) 57 return, obj_new(testName, test_runner=self.testRunner, $ 58 failures_only=self.failuresOnly, _strict_extra=e) 58 59 end 59 60 … … 77 78 78 79 79 ;+ 80 ; Run the contained test suites or test cases. 81 ;- 82 pro mguttestsuite::run 83 compile_opt strictarr 84 85 self.npass = 0L 86 self.nfail = 0L 87 self.nskip = 0L 88 80 pro mguttestsuite::display 81 compile_opt strictarr 82 83 if (self.nfail eq 0L) then return 84 89 85 self->getProperty, name=name, ntestcases=ntestcases, ntests=ntests 90 86 self.testRunner->reportTestSuiteStart, name, $ … … 92 88 ntests=ntests, $ 93 89 level=self.level 90 91 for t = 0L, ntestcases - 1L do begin 92 otestcase = self.testcases->get(position=t) 93 otestcase->display 94 endfor 95 96 self.testRunner->reportTestSuiteResult, npass=self.npass, $ 97 nfail=self.nfail, $ 98 nskip=self.nskip, $ 99 level=self.level 100 end 101 102 103 ;+ 104 ; Run the contained test suites or test cases. 105 ;- 106 pro mguttestsuite::run 107 compile_opt strictarr 108 109 self.npass = 0L 110 self.nfail = 0L 111 self.nskip = 0L 112 113 if (~self.failuresOnly) then begin 114 self->getProperty, name=name, ntestcases=ntestcases, ntests=ntests 115 self.testRunner->reportTestSuiteStart, name, $ 116 ntestcases=ntestcases, $ 117 ntests=ntests, $ 118 level=self.level 119 endif 94 120 95 121 ntestcases = self.testcases->count() … … 105 131 endfor 106 132 107 self.testRunner->reportTestSuiteResult, npass=self.npass, $ 108 nfail=self.nfail, $ 109 nskip=self.nskip, $ 110 level=self.level 133 if (~self.failuresOnly) then begin 134 self.testRunner->reportTestSuiteResult, npass=self.npass, $ 135 nfail=self.nfail, $ 136 nskip=self.nskip, $ 137 level=self.level 138 endif 111 139 end 112 140 … … 170 198 otestsuite = obj_new('MGutTestSuite', home=testDirs[d], $ 171 199 name=file_basename(testDirs[d]), $ 172 test_runner=self.testRunner) 200 test_runner=self.testRunner, $ 201 failures_only=self.failuresOnly) 173 202 otestsuite->add, /all 174 203 self.testcases->add, otestsuite … … 278 307 ; subclass of MGtestRunner 279 308 ;- 280 function mguttestsuite::init, name=name, home=home, test_runner=testRunner 309 function mguttestsuite::init, name=name, home=home, test_runner=testRunner, $ 310 failures_only=failuresOnly 281 311 compile_opt strictarr 282 312 … … 297 327 298 328 self.testRunner = testRunner 299 329 self.failuresOnly = keyword_set(failuresOnly) 330 300 331 self.testcases = obj_new('IDL_Container') 301 332 … … 316 347 ; number of layers below the top-most containing test suite 317 348 ; testcases 318 ; IDL_Containerholding test suites or test cases349 ; `IDL_Container` holding test suites or test cases 319 350 ; testRunner 320 ; subclass of MGutTestRunner351 ; subclass of `MGutTestRunner` 321 352 ; npass 322 353 ; number of passing tests contained in the hierarchy below this test … … 340 371 npass: 0L, $ 341 372 nfail: 0L, $ 342 nskip: 0L $ 373 nskip: 0L, $ 374 failuresOnly: 0B $ 343 375 } 344 376 end
