下面是我编写的以编程方式测试Mocha脚本的代码。 当我在控制台中打印testsResults时,我得到了预期的响应,但是当我将其作为响应发送时,它返回:{ “总计”:0, “ passCount”:0, “ failCount”:0, “测试”:{} }
代码:
router.get('/ runMochaScriptsViaCICD',multipartMiddleware,异步功能(req,res,next){ //此函数通过CICD运行所有测试脚本
try {
// Instantiate a Mocha instance.
var mocha = new Mocha();
mocha.timeout(100000);
var testDir = './test/'
var date = new Date();
// Add each .js file to the mocha instance
fs.readdirSync(testDir).filter(function(file) {
// Only keep the .js files
return file.substr(-3) === '.js';
}).forEach(function(file) {
delete require.cache[file];
mocha.addFile(
path.join(testDir, file)
);
});
//var promise = new Promise(function(resolve, reject) {
mocha.reporter(function (runner) {
var passes = 0;
var failures = 0;
runner.total;
var testsResults = {
total: runner.total,
passCount: 0,
failCount: 0,
tests: {},
};
runner.on('pass', function (test) {
testsResults.passCount++;
});
runner.on('fail', function (test, err) {
testsResults.failCount++;
});
runner.on('end', function () {
console.log("testsResults : ", testsResults);
res.json(testsResults);
});
}).run();
// res.sendStatus(200);
}
catch (e) {
logger.info("Exception raised in service/status call")
logger.info(e);
res.sendStatus(503);
return;
}
})
请让我知道,我在这里错过了什么。 预先谢谢你!