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