2016-11-06 15 views
1

実行されたすべてのテストの後に、テスト結果を電子メールで送信します。mochaのアフターフックでコールされないsendmail転送のコールバック

アフターフックでsendMail(nodemailer)を呼び出すと、動作しません。

マイコード:

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


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

    let transporter = nodemailer.createTransport({ 
     service: "Gmail", 
     auth: { 
      user: "[email protected]", 
      pass: "xxxx" 
     } 
    }); 

    transporter.sendMail(mailOptions, function (error, info) { 
     if (error) { 
      console.log(error); 
     } 
    }); 
} 
+0

あなたは後** 'done'コールバックを呼び出す必要があります。**メールは(心のasynchronity) – qqilihq

答えて

2

は、電子メールを送信した後doneコールバックを実行します。

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


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

    let transporter = nodemailer.createTransport({ 
     service: "Gmail", 
     auth: { 
      user: "[email protected]", 
      pass: "xxxx" 
     } 
    }); 

    transporter.sendMail(mailOptions, function (error, info) { 
     if (error) { 
      console.log(error); 
     } 
     done(); 
    }); 
} 
+0

を送信しましたすばらしいです!どうもありがとうございました。 –

関連する問題