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' );
 | |
|     } );
 | |
| } )(); |