【发布时间】:2015-05-19 07:50:21
【问题描述】:
我正在使用node-cron 安排每天执行一次的任务,我想在 mocha 中进行测试。
我正在使用 child_process.spawn 来运行脚本,我需要对创建的子进程的内部时钟进行处理。这是我到目前为止所拥有的:
it.only('Should run the script every 24 hours and trigger an event',function(done){
var clock = sinon.useFakeTimers(),
path = process.cwd() + '/cronjob/',
env = Object.create(process.env);
env.NODE_ENV = 'test';
var cronjob = child.spawn('node', ['index.js'], {
cwd: path,
env: env
});
cronjob.stdout.on('data',function(data){
console.log(data);
if (data.toString().trim() === 'Script ran successfully'){
cronjob.kill('SIGINT');
done();
}
});
cronjob.stderr.on('data',function(data){
done(new Error(data.toString()));
});
clock.tick(24*60*60*1000);
}
这只会在 mocha 测试实例中而不是在 index.js 中进行时间。 有什么办法可以将 sinon 计时器传递给子进程?
【问题讨论】:
标签: node.js cron mocha.js sinon