Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails测试一个定时邮件rake任务_Ruby On Rails_Ruby_Ruby On Rails 3_Cron_Scheduled Tasks - Fatal编程技术网

Ruby on rails Rails测试一个定时邮件rake任务

Ruby on rails Rails测试一个定时邮件rake任务,ruby-on-rails,ruby,ruby-on-rails-3,cron,scheduled-tasks,Ruby On Rails,Ruby,Ruby On Rails 3,Cron,Scheduled Tasks,我有一个rake任务,它应该每天向用户发送一封邮件,用户的daily字段==true。(我的项目中已经有一个正在工作的邮件实现,它在创建帐户和重置密码时发送邮件)。我正在使用 问题是,由于我不是在生产中,我不知道如何测试它是否有效 这是我的用户邮箱: def daily_mail(user) @user = user mail to: user.email, subject: "Mail journalier" end 我的rake任务: 描述“向用户发送电子邮件” 和我的日程

我有一个rake任务,它应该每天向用户发送一封邮件,用户的daily字段==true。(我的项目中已经有一个正在工作的邮件实现,它在创建帐户和重置密码时发送邮件)。我正在使用

问题是,由于我不是在生产中,我不知道如何测试它是否有效

这是我的用户邮箱:

def daily_mail(user)
    @user = user
    mail to: user.email, subject: "Mail journalier"
end
我的rake任务:

描述“向用户发送电子邮件”

和我的日程表.rb:

every :day, :at => '12pm' do # Use any day of the week or :weekend, :weekday
  rake "email_sender"
end
我是在看了教程之后做的:

whenever --update-crontab store (and tried with --set too)
我试着做了一个crontab-l,结果是:

# Begin Whenever generated tasks for: store

0 12 * * * /bin/bash -l -c 'cd /Users/Marco/Documents/TBProject && RAILS_ENV=production bundle exec rake email_sender --silent'

# End Whenever generated tasks for: store

# Begin Whenever generated tasks for: /Users/Marco/Documents/TBProject/config/schedule.rb

0 12 * * * /bin/bash -l -c 'cd /Users/Marco/Documents/TBProject && RAILS_ENV=production bundle exec rake email_sender --silent'

# End Whenever generated tasks for: /Users/Marco/Documents/TBProject/config/schedule.rb
它们是否是测试(或知道)我的任务是否能在生产中发挥作用的一种方法

更新:

我尝试运行“rake email_sender”,我在development.log中得到了以下信息:

[1m[36mUser Load (0.9ms)[0m  [1mSELECT  "users".* FROM "users"  ORDER BY "users"."id" ASC LIMIT 1000[0m
DEPRECATION WARNING: `#deliver` is deprecated and will be removed in Rails 5. Use `#deliver_now` to deliver immediately or `#deliver_later` to deliver through Active Job. (called from block (2 levels) in <top (required)> at /Users/Marco/Documents/TBProject/lib/tasks/rake1.rake:5)
  Rendered user_mailer/daily_mail.html.erb within layouts/mailer (1.2ms)
  Rendered user_mailer/daily_mail.text.erb within layouts/mailer (0.2ms)

UserMailer#daily_mail: processed outbound mail in 189.6ms

Sent mail to example@railstutorial.org (8.6ms)
Date: Mon, 06 Jul 2015 19:24:29 +0200
From: admin@fluxio.com
To: example@railstutorial.org
Message-ID: <559ab9cd79f6_193e3fc21dc6020412765@Marcos-MacBook-Air.local.mail>
Subject: Mail journalier
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_559ab9cd64da_193e3fc21dc6020412690";
 charset=UTF-8
Content-Transfer-Encoding: 7bit


----==_mimepart_559ab9cd64da_193e3fc21dc6020412690
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

Daily Mail

----==_mimepart_559ab9cd64da_193e3fc21dc6020412690
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<html>
  <body>
    <h1>Daily Mail</h1>
  </body>
</html>

----==_mimepart_559ab9cd64da_193e3fc21dc6020412690--

DEPRECATION WARNING: `#deliver` is deprecated and will be removed in Rails 5. Use `#deliver_now` to deliver immediately or `#deliver_later` to deliver through Active Job. (called from block (2 levels) in <top (required)> at /Users/Marco/Documents/TBProject/lib/tasks/rake1.rake:5)
  Rendered user_mailer/daily_mail.html.erb within layouts/mailer (0.0ms)
  Rendered user_mailer/daily_mail.text.erb within layouts/mailer (0.0ms)

UserMailer#daily_mail: processed outbound mail in 15.2ms

Sent mail to test@test123.ch (2.7ms)
Date: Mon, 06 Jul 2015 19:24:29 +0200
From: admin@fluxio.com
To: test@test123.ch
Message-ID: <559ab9cdd27c_193e3fc21dc602041295@Marcos-MacBook-Air.local.mail>
Subject: Mail journalier
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_559ab9cdc753_193e3fc21dc60204128e8";
 charset=UTF-8
Content-Transfer-Encoding: 7bit


----==_mimepart_559ab9cdc753_193e3fc21dc60204128e8
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

Daily Mail

----==_mimepart_559ab9cdc753_193e3fc21dc60204128e8
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<html>
  <body>
    <h1>Daily Mail</h1>
  </body>
</html>

----==_mimepart_559ab9cdc753_193e3fc21dc60204128e8--
[1m[36mUser负载(0.9ms)[0m[1m选择“用户”。*从“用户”订单中选择“用户”。“id”ASC限制1000[0m
弃用警告:“deliver”已弃用,将在Rails 5中删除。使用“deliver_now”立即交付,或使用“deliver_later”通过活动作业交付。(从at/Users/Marco/Documents/TBProject/lib/tasks/rake1.rake:5中的块(2级)调用)
在layouts/mailer中呈现用户_mailer/daily_mail.html.erb(1.2ms)
在layouts/mailer(0.2ms)中呈现用户_-mailer/daily_-mail.text.erb
UserMailer#每日邮件:在189.6ms内处理出站邮件
发送邮件至example@railstutorial.org(8.6毫秒)
日期:2015年7月6日星期一19:24:29+0200
发件人:admin@fluxio.com
致:example@railstutorial.org
消息ID:
主题:邮件记者
Mime版本:1.0
内容类型:多部分/备选;
boundary=“-->=”mimepart\u 559ab9cd64da\u 193e3fc21dc6020412690”;
字符集=UTF-8
内容传输编码:7bit
----==\u mimepart\u 559ab9cd64da\u 193e3fc21dc6020412690
内容类型:文本/纯文本;
字符集=UTF-8
内容传输编码:7bit
每日邮报
----==\u mimepart\u 559ab9cd64da\u 193e3fc21dc6020412690
内容类型:text/html;
字符集=UTF-8
内容传输编码:7bit
每日邮报
----==\u mimepart\u 559ab9cd64da\u 193e3fc21dc6020412690--
弃用警告:“deliver”已弃用,将在Rails 5中删除。使用“deliver_now”立即交付,或使用“deliver_later”通过活动作业交付。(从at/Users/Marco/Documents/TBProject/lib/tasks/rake1.rake:5中的块(2级)调用)
layouts/mailer中呈现的用户\u mailer/daily\u mail.html.erb(0.0ms)
在layouts/mailer中呈现用户\u mailer/daily\u mail.text.erb(0.0ms)
UserMailer#每日邮件:以15.2ms的速度处理出站邮件
发送邮件至test@test123.ch(2.7毫秒)
日期:2015年7月6日星期一19:24:29+0200
发件人:admin@fluxio.com
致:test@test123.ch
消息ID:
主题:邮件记者
Mime版本:1.0
内容类型:多部分/备选;
boundary=“-->=”mimepart\u 559ab9cdc753\u 193e3fc21dc60204128e8”;
字符集=UTF-8
内容传输编码:7bit
----==\u mimepart\u 559ab9cdc753\u 193e3fc21dc60204128e8
内容类型:文本/纯文本;
字符集=UTF-8
内容传输编码:7bit
每日邮报
----==\u mimepart\u 559ab9cdc753\u 193e3fc21dc60204128e8
内容类型:text/html;
字符集=UTF-8
内容传输编码:7bit
每日邮报
----==\u mimepart\u 559ab9cdc753\u 193e3fc21dc60204128e8--
所以它只向两个daily==true的用户发送邮件,所以我的方法可以工作。但是计划的作业可以工作吗?

将UserMailer更改为

def daily_mail(user)
    @user = user
    mail_to :user.email, subject: "Mail journalier"
end

我正在使用mail to:进行帐户激活,它可以正常工作
def daily_mail(user)
    @user = user
    mail_to :user.email, subject: "Mail journalier"
end