Skip to content

Commit bf150b7

Browse files
committed
modify tape.run_tests to be compatible with new TestExecutor
1 parent ef497da commit bf150b7

1 file changed

Lines changed: 50 additions & 29 deletions

File tree

  • Nodejs/Product/Nodejs/TestFrameworks/Tape

Nodejs/Product/Nodejs/TestFrameworks/Tape/tape.js

Lines changed: 50 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ var result = {
66
'title': '',
77
'passed': false,
88
'stdOut': '',
9-
'stdErr': '',
10-
'time': 0
9+
'stdErr': ''
1110
};
1211

1312
function append_stdout(string, encoding, fd) {
1413
result.stdOut += string;
1514
}
15+
1616
function append_stderr(string, encoding, fd) {
1717
result.stdErr += string;
1818
}
@@ -52,42 +52,63 @@ function find_tests(testFileList, discoverResultFile, projectFolder) {
5252
module.exports.find_tests = find_tests;
5353

5454
function 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
}
92113
module.exports.run_tests = run_tests;
93114

0 commit comments

Comments
 (0)