1 jls.loader.provide('jls.jsunit.TestResult'); 2 3 jls.loader.require('jls.lang.AssertionError'); 4 jls.loader.require('jls.jsunit.TestFailure'); 5 6 jls.jsunit.TestResult = jls.lang.Class.create( 7 { 8 initialize : function() { 9 this._errors = []; 10 this._failures = []; 11 this._runTests = 0; 12 }, 13 run : function(test) { 14 this.startTest(test); 15 try { 16 test.runBare(); 17 } 18 catch (e) { 19 if (e instanceof jls.lang.AssertionError) { 20 this.addFailure(test, e); 21 } else { 22 this.addError(test, e); 23 } 24 } 25 this.endTest(test); 26 }, 27 startTest : function(test) { 28 this._runTests += test.countTestCases(); 29 }, 30 endTest : function(test) { 31 }, 32 addFailure : function(test, e) { 33 this._failures.push(new jls.jsunit.TestFailure(test, e)); 34 }, 35 addError : function(test, e) { 36 this._errors.push(new jls.jsunit.TestFailure(test, e)); 37 }, 38 errorCount : function() { 39 return this._errors.length; 40 }, 41 failureCount : function() { 42 return this._failures.length; 43 }, 44 runCount : function() { 45 return this._runTests; 46 }, 47 wasSuccessful : function() { 48 return this.errorCount() == 0 && this.failureCount() == 0; 49 }, 50 toString : function() { 51 return '' + this.runCount() + ' test(s): ' + this.errorCount() + ' error(s) and ' + this.failureCount() + ' failure(s)'; 52 }, 53 getErrors : function() { 54 return this._errors; 55 }, 56 getFailures : function() { 57 return this._failures; 58 } 59 }); 60