Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在mocha中的后钩子中从未调用sendmail传输的回调_Javascript_Unit Testing_Asynchronous_Mocha.js_Nodemailer - Fatal编程技术网

Javascript 在mocha中的后钩子中从未调用sendmail传输的回调

Javascript 在mocha中的后钩子中从未调用sendmail传输的回调,javascript,unit-testing,asynchronous,mocha.js,nodemailer,Javascript,Unit Testing,Asynchronous,Mocha.js,Nodemailer,我想在所有执行的测试之后发送带有测试结果的电子邮件 当我在after钩子中调用sendMail(nodemailer)时,它不起作用 我的代码: after(function(done) { sendReport(); done(); }); function sendReport() { let mailOptions = { from: "xxx@gmail.com", to: "xxx@gmail.com", s

我想在所有执行的测试之后发送带有测试结果的电子邮件

当我在after钩子中调用sendMail(nodemailer)时,它不起作用

我的代码:

after(function(done) {
     sendReport();
     done();
});


function sendReport() {
   let mailOptions = {
        from: "xxx@gmail.com",
        to: "xxx@gmail.com",
        subject: "subject",
        text: "body Text",
        html: "<h2><b>TEXT.</b></h2>",
        attachments: [{
            path: "../reports/report.html"
        }]
    };

    let transporter = nodemailer.createTransport({
        service: "Gmail",
        auth: {
            user: "xxx@gmail.com",
            pass: "xxxx"
        }
    });

    transporter.sendMail(mailOptions, function (error, info) {
         if (error) {
            console.log(error);
        }
    });
}
after(函数(完成){
sendReport();
完成();
});
函数sendReport(){
让邮件选项={
来自:xxx@gmail.com",
至:xxx@gmail.com",
主题:“主题”,
文本:“正文文本”,
html:“文本。”,
附件:[{
路径:“../reports/report.html”
}]
};
让transporter=nodeEmailer.createTransport({
服务:“Gmail”,
认证:{
用户:“xxx@gmail.com",
通行证:“xxxx”
}
});
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
console.log(错误);
}
});
}

发送电子邮件后执行
完成
回调:

after(function(done) {
     sendReport(done);
});


function sendReport(done) {
   let mailOptions = {
        from: "xxx@gmail.com",
        to: "xxx@gmail.com",
        subject: "subject",
        text: "body Text",
        html: "<h2><b>TEXT.</b></h2>",
        attachments: [{
            path: "../reports/report.html"
        }]
    };

    let transporter = nodemailer.createTransport({
        service: "Gmail",
        auth: {
            user: "xxx@gmail.com",
            pass: "xxxx"
        }
    });

    transporter.sendMail(mailOptions, function (error, info) {
         if (error) {
            console.log(error);
        }
        done();
    });
}
after(函数(完成){
提交报告(完成);
});
函数sendReport(完成){
让邮件选项={
来自:xxx@gmail.com",
至:xxx@gmail.com",
主题:“主题”,
文本:“正文文本”,
html:“文本。”,
附件:[{
路径:“../reports/report.html”
}]
};
让transporter=nodeEmailer.createTransport({
服务:“Gmail”,
认证:{
用户:“xxx@gmail.com",
通行证:“xxxx”
}
});
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
console.log(错误);
}
完成();
});
}

您必须在邮件发送后调用
done
回调(注意异步性)太棒了!非常感谢你。
let mailTransport = nodemailer.createTransport(mailConfig);
mailTransport.sendMail(mailOptions, function(err, info){
    if (err) {
        console.log('ERRO');
        console.log(err.message);
        return process.exit(1);
    }
    console.log("messageId",info.messageId);
    console.log("envelope", info.envelope);
    console.log("accepted", info.accepted);
    console.log("rejected", info.rejected);
    console.log("pending", info.pending);
    console.log("response", response );
    console.log('SCSS', numero, mailOptions.to, termo);
});