11var fs = require ( "fs" ) ,
2- assert = require ( "assert" ) ;
2+ path = require ( "path" ) ,
3+ assert = require ( "assert" ) ;
34
45var runCount = 0 ,
5- testCount = 0 ;
6+ testCount = 0 ,
7+ done = false ;
8+
9+ [
10+ "./01-events.js" ,
11+ "./02-stream.js" ,
12+ "./03-feed.js"
13+ ]
14+ . map ( require )
15+ . forEach ( function ( test ) {
16+ console . log ( "\nStarting" , test . dir , "\n----" ) ;
17+
18+ var dir = path . resolve ( __dirname , test . dir ) ;
619
7- function runTests ( test ) {
820 //read files, load them, run them
9- fs . readdirSync ( __dirname + test . dir
10- ) . map ( function ( file ) {
11- if ( file [ 0 ] === "." ) return false ;
12- if ( file . substr ( - 5 ) === ".json" ) return JSON . parse (
13- fs . readFileSync ( __dirname + test . dir + file )
14- ) ;
15- return require ( __dirname + test . dir + file ) ;
16- } ) . forEach ( function ( file ) {
17- if ( ! file ) return ;
18- var second = false ;
19-
21+ var f = fs
22+ . readdirSync ( dir )
23+ . filter ( RegExp . prototype . test , / ^ [ ^ \. _ ] / ) //ignore all files with a leading dot or underscore
24+ . map ( function ( name ) {
25+ return path . resolve ( dir , name ) ;
26+ } )
27+ . map ( require )
28+ . forEach ( function ( file ) {
2029 runCount ++ ;
2130
2231 console . log ( "Testing:" , file . name ) ;
2332
33+ var second = false ; //every test runs twice
2434 test . test ( file , function ( err , dom ) {
2535 assert . ifError ( err ) ;
2636 assert . deepEqual ( file . expected , dom , "didn't get expected output" ) ;
2737
2838 if ( second ) {
29- runCount -- ;
3039 testCount ++ ;
40+ if ( ! -- runCount && done ) {
41+ console . log ( "Total tests:" , testCount ) ;
42+ }
3143 }
3244 else second = true ;
3345 } ) ;
3446 } ) ;
35- console . log ( "->" , test . dir . slice ( 1 , - 1 ) , "started" ) ;
36- }
37-
38- //run all tests
39- [
40- "./02-feed.js" ,
41- "./03-events.js" ,
42- "./05-stream.js"
43- ] . map ( require ) . forEach ( runTests ) ;
47+ } ) ;
4448
45- //log the results
46- ( function check ( ) {
47- if ( runCount !== 0 ) return process . nextTick ( check ) ;
48- console . log ( "Total tests:" , testCount ) ;
49- } ( ) ) ;
49+ var done = true ; //started all tests
0 commit comments