@@ -6,13 +6,13 @@ var result = {
66 'title' : '' ,
77 'passed' : false ,
88 'stdOut' : '' ,
9- 'stdErr' : '' ,
10- 'time' : 0
9+ 'stdErr' : ''
1110} ;
1211
1312function append_stdout ( string , encoding , fd ) {
1413 result . stdOut += string ;
1514}
15+
1616function append_stderr ( string , encoding , fd ) {
1717 result . stdErr += string ;
1818}
@@ -52,42 +52,63 @@ function find_tests(testFileList, discoverResultFile, projectFolder) {
5252module . exports . find_tests = find_tests ;
5353
5454function run_tests ( testInfo , callback ) {
55- var testResults = [ ] ;
56- var testCases = loadTestCases ( testInfo [ 0 ] . testFile ) ;
57- process . stdout . write = append_stdout ;
58- process . stderr . write = append_stderr ;
59- if ( testCases === null ) {
60- return ;
61- }
62-
6355 var tape = findTape ( testInfo [ 0 ] . projectFolder ) ;
6456 if ( tape === null ) {
6557 return ;
6658 }
6759
68- for ( var test in testInfo ) {
69- result . title = testInfo [ test ] . testName ;
60+ var harness = tape . getHarness ( ) ;
61+
62+ testInfo . forEach ( function ( info ) {
63+ runTest ( info , harness , function ( result ) {
64+ callback ( result ) ;
65+ } ) ;
66+ } ) ;
67+
68+ tape . onFinish ( function ( ) {
69+ // executes when all tests are done running
70+ } ) ;
71+
72+ function runTest ( testInfo , harness , done ) {
73+ var stream = harness . createStream ( { objectMode : true } ) ;
74+ var title = testInfo . testName ;
75+
76+ stream . on ( ( 'data' ) , function ( result ) {
77+ if ( result . type === 'test' ) {
78+ done ( {
79+ type : 'test start' ,
80+ title : title
81+ } ) ;
82+ }
83+ } ) ;
84+
7085 try {
71- result . time = Date . now ( ) ;
72- var harness = tape . getHarness ( ) ;
73- harness ( testInfo [ test ] . testName ) ;
74- result . passed = true ;
86+ var htest = tape . test ( title , { } , function ( result ) {
87+ done ( {
88+ type : 'result' ,
89+ title : title ,
90+ result : {
91+ 'title' : title ,
92+ 'passed' : result . _ok ,
93+ 'stdOut' : '' ,
94+ 'stdErr' : ''
95+ }
96+ } ) ;
97+ } ) ;
7598 } catch ( e ) {
76- result . passed = false ;
77- logError ( 'Error running test:' , testInfo [ test ] . testName , 'in' , testInfo [ test ] . testFile , e ) ;
99+ console . error ( 'NTVS_ERROR:' , e ) ;
100+ done ( {
101+ type : 'result' ,
102+ title : title ,
103+ result : {
104+ 'title' : title ,
105+ 'passed' : false ,
106+ 'stdOut' : '' ,
107+ 'stdErr' : e . message
108+ }
109+ } ) ;
78110 }
79- result . time = Date . now ( ) - result . time ;
80- testResults . push ( result ) ;
81- result = {
82- 'title' : '' ,
83- 'passed' : false ,
84- 'stdOut' : '' ,
85- 'stdErr' : '' ,
86- 'time' : 0
87- } ;
88111 }
89-
90- callback ( testResults ) ;
91112}
92113module . exports . run_tests = run_tests ;
93114
0 commit comments