Javascript 在mocha中的后钩子中从未调用sendmail传输的回调
我想在所有执行的测试之后发送带有测试结果的电子邮件 当我在after钩子中调用sendMail(nodemailer)时,它不起作用 我的代码: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(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);
});