58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | #!/usr/bin/env node
 | ||
|  | ( function () { | ||
|  |     var log = console.log | ||
|  |         , fs = require( 'fs' ) | ||
|  |         , util = require( 'util' ) | ||
|  |         , iopt = { | ||
|  |             showHidden : false | ||
|  |             , depth : 10 | ||
|  |             , colors : true | ||
|  |             , customInspect : true  | ||
|  |         } | ||
|  |         , inspect = function ( el ) { | ||
|  |             return util.inspect( el, iopt ); | ||
|  |         } | ||
|  |         , tpath = __dirname | ||
|  |         , minfo = require( '../package.json' ) | ||
|  |         , mname = minfo.name.charAt( 0 ).toUpperCase() + minfo.name.slice( 1 ) | ||
|  |         , mver = minfo.version | ||
|  |         ; | ||
|  | 
 | ||
|  |     // catch SIGINT
 | ||
|  |     process.on( 'SIGINT', function () { | ||
|  |         log( '\nExit tests with SIGINT.\n' ); | ||
|  |         process.exit( 0 ); | ||
|  |     } ); | ||
|  | 
 | ||
|  |     fs.readdir( tpath,  function ( err, files ) { | ||
|  |         if ( err ) return 1; | ||
|  | 
 | ||
|  |         var flen = files.length | ||
|  |             , fname = files[ 0 ] | ||
|  |             , f = 0 | ||
|  |             , failed = {} | ||
|  |             , fails = 0 | ||
|  |             , success = 0 | ||
|  |             , executed = 0 | ||
|  |             ; | ||
|  | 
 | ||
|  |         for ( ; f < flen; fname = files[ ++f ] ) { | ||
|  |             if ( ~ fname.indexOf( '-test.js' ) ) { | ||
|  |                 ++executed; | ||
|  |                 // run script
 | ||
|  |                 log( '\n[ %s v%s - %s ]\n', mname, mver, inspect( fname ) ); | ||
|  |                 try { | ||
|  |                     require( './' + fname ); | ||
|  |                     ++success | ||
|  |                 } catch ( e ) { | ||
|  |                     ++fails; | ||
|  |                     if ( ! failed[ fname ] ) failed[ fname ] = []; | ||
|  |                     failed[ fname ].push( e, Date.now() ); | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  |         log( '\n%s test files executed.', inspect( executed ) ); | ||
|  |         log( '%s test files succeeded.', inspect( success ) ); | ||
|  |         log( '%s test files failed.%s', inspect( fails ), fails ? '\n' + inspect( failed ) +'\n' : '\n' ); | ||
|  |     } ); | ||
|  | } )(); |