Protractor 无法使用dragrator.conf.js onComplete:function()中的NodeEmailer发送电子邮件
无法使用dragrator.conf.js onComplete:function()中的NodeEmailer发送电子邮件。使用了下面的代码,它不执行onComplete块Protractor 无法使用dragrator.conf.js onComplete:function()中的NodeEmailer发送电子邮件,protractor,Protractor,无法使用dragrator.conf.js onComplete:function()中的NodeEmailer发送电子邮件。使用了下面的代码,它不执行onComplete块 onComplete: function() { var nodemailer = require('nodemailer'); var transporter = nodemailer.createTransport({ host: 'smtp.gmail.com',
onComplete: function() {
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true, // use SSL
auth: {
user: 'email',
pass: 'password'
}
});
var mailOptions = {
from: '"TestMail" <>', // sender address (who sends)
to: 'receiver's email', // list of receivers (who receives)
subject: 'Hello through conf', // Subject line
text: 'Hello world ', // plaintext body
html: '<b>Hello world </b><br> This is the first email sent with Nodemailer in Node.js', // html body
};
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
onComplete:function(){
var nodeEmailer=require('nodeEmailer');
var transporter=nodeEmailer.createTransport({
主机:“smtp.gmail.com”,
港口:465,
安全:true,//使用SSL
认证:{
用户:“电子邮件”,
通行证:“密码”
}
});
var mailpoptions={
发件人:“'TestMail”“,//发件人地址(发送人)
收件人:'收件人的电子邮件',//收件人列表(收件人)
主题:“Hello through conf”,//主题行
text:'你好,世界',//纯文本正文
html:“Hello world
这是Node.js”中第一封使用nodeEmailer发送的电子邮件,//html body
};
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
返回console.log(错误);
}
console.log('发送的消息:'+信息响应);
});
您需要返回承诺。只有这样,onComplete()
才会等待承诺得到解决-邮件被触发
测试完成后调用的回调函数。onComplete可以(可选)返回承诺,量角器将在之前等待该承诺
正在关闭webdriver。 此时,将完成测试,但全局对象仍然可用。
onComplete?:()=>void
成功触发电子邮件后,您需要转换函数以返回承诺。请参阅此。他们有一个非常好的示例,介绍如何将fs.readFile()
转换为返回承诺
你可以这样做
onComplete: function() {
return new Promise(function (fulfill, reject){
var transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true, // use SSL
auth: {
user: 'email',
pass: 'password'
}
});
var mailOptions = {
from: '"TestMail" <>', // sender address (who sends)
to: 'receiver's email', // list of receivers (who receives)
subject: 'Hello through conf', // Subject line
text: 'Hello world ', // plaintext body
html: '<b>Hello world </b><br> This is the first email sent with Nodemailer in Node.js', // html body
};
transporter.sendMail(mailOptions, function(error, info){
if(error){
reject(err);
}
fulfill(info);
});
});
}
onComplete:function(){
返回新承诺(功能(履行、拒绝){
var transporter=nodeEmailer.createTransport({
主机:“smtp.gmail.com”,
港口:465,
安全:true,//使用SSL
认证:{
用户:“电子邮件”,
通行证:“密码”
}
});
var mailpoptions={
发件人:“'TestMail”“,//发件人地址(发送人)
收件人:'收件人的电子邮件',//收件人列表(收件人)
主题:“Hello through conf”,//主题行
text:'你好,世界',//纯文本正文
html:“Hello world
这是Node.js”中第一封使用nodeEmailer发送的电子邮件,//html body
};
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
拒绝(错误);
}
完成(信息);
});
});
}
上面的代码不起作用,我按原样使用了代码,在执行后,电子邮件未被触发,浏览器保持打开状态,因此看起来promise未得到解决,控制台上未显示任何错误