1 jls.loader.provide('jls.jsunit.TestSuite'); 2 3 jls.loader.require('jls.lang.AssertionError'); 4 jls.loader.require('jls.jsunit.TestCase'); 5 jls.loader.require('jls.jsunit.TestResult'); 6 7 jls.jsunit.TestSuite = jls.lang.Class.create( 8 { 9 initialize : function() { 10 this._testCases = []; 11 }, 12 addTest : function(test) { 13 this._testCases.push(test); 14 return this; 15 }, 16 testCount : function() { 17 return this._testCases.length; 18 }, 19 addTestSuite : function(tcClass) { 20 if (typeof tcClass == 'string') { 21 tcClass = jls.loader.require(tcClass); 22 } 23 if (typeof tcClass != 'function') { 24 throw new jls.lang.Exception('Invalid test case class'); 25 } 26 for (var name in tcClass.prototype) { 27 if (! (name.startsWith('test') && (typeof tcClass.prototype[name] == 'function'))) { 28 continue; 29 } 30 this.addTest(new tcClass(name)); 31 } 32 return this; 33 }, 34 run : function(tr) { 35 for (var i = 0; i < this._testCases.length; i++) { 36 //jls.logger.info('running: ' + jls.loader.getClassname(this._testCases[i]) + '(' + this._testCases[i].getName() + ')'); 37 tr.run(this._testCases[i]); 38 } 39 } 40 }); 41 42