通过REST通过Mocha编程发送响应

时间:2019-03-08 08:17:59

标签: node.js mocha

下面是我编写的以编程方式测试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;
}

})

请让我知道,我在这里错过了什么。 预先谢谢你!

0 个答案:

没有答案