从Casperjs分离子进程

时间:2014-11-28 12:35:10

标签: node.js phantomjs casperjs

我正在尝试使用casperjs开发一个测试脚本,如果单个测试失败,则会向开发人员发送一封电子邮件。

邮件脚本由nodejs使用nodemailer制作。 如果启动邮件程序的函数在casperjs脚本中的某个位置它运行正常,则问题出现在测试失败时:看起来casperjs存在而不会留给子进程完成的时间。

我发现使其工作的唯一方法是添加--auto-exit = no并在收到邮件程序响应时显式退出。但是我想避免在剧本之外传递参数。

有没有办法: 在脚本里面设置自动退出选项? 或者分离子进程,以便在父进程退出时不会死亡?

监听器:

casper.test.on("fail", function(failure){
      casper.capture(image_dir+'/ERROR.png');
        tools.sendMail(
        tools.config.recipients,
        'Errore '+tools.config.website,
        'Il Test sul controllo login è fallito. In allegato screenshot del problema.',
        'Il Test sul controllo login è fallito. In allegato screenshot del problema.',
        'screenshots/login'+'/ERROR.png'
    );  

});

功能

var sendMail = function($to,$subject,$text,$html,$attachments) {
    var childProcess;

    try {
        childProcess = require("child_process");
    } catch (e) {
        casper.echo("error"+e);
    }
    if (childProcess) {
        childProcess.execFile("/usr/bin/nodejs", ["common/mailer.js", $to, $subject, $text, $html , $attachments], null, function(err, stdout, stderr) {
            casper.echo("----------------------execFileSTDOUT:"+ JSON.stringify(stdout));
            casper.echo("----------------------execFileSTDERR:"+ JSON.stringify(stderr));
            casper.exit(1);
        });
        casper.echo("Done");
    } else {
        casper.echo("Unable to require child process");
    }
};

我还试图使用" nohup / usr / bin / nodejs"但没有运气。

由于

0 个答案:

没有答案