0

我的测试环境使用 spork 和 cucumber - 我能够很好地运行我的测试并决定包含 email_spec。但是电子邮件测试失败

  1. 我的电子邮件是使用delayed_job 发送出去的
  2. email_spec 在检查电子邮件之前运行延迟的作业
  3. 但是,电子邮件(使用haml)没有被发送出去,因为delayed_job 失败了

    Missing template user_response_mailer/send_contact_info with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en]
    
  4. 请注意,错误中的处理程序不会在其处理程序列表中显示 :haml。我的 gemfile 中有 haml 和 haml-rails gem,我的应用程序在非测试环境中正确发送邮件(在 dev/prod 中没有上述错误)

主要问题是

    Why is haml not getting loaded automatically when my email templates are being rendered via delayed_job running under spork ?
4

1 回答 1

0

这一定是一个spork问题,没有别的。安装 HAML 后您是否重新启动了 spork 服务器?

我问是因为:我将 email_spec 与 rspec/cucumber 一起使用,现在使用 spork,而我的应用程序中的所有内容都是 HAML。电子邮件由 resque-mailer 发送,而不是 delay_job。我遇到的问题是,当使用 spork 运行时,不会拾取对 HAML 模板的更改(即 HAML 插件使用模板的预编译、缓存副本)。

查看您的错误,根本没有加载 HAML。如果是, :handlers 数组将在列表中有 :haml。

就我而言,禁用视图缓存应该可以解决这个问题,我仍在研究那个问题

于 2012-01-02T20:35:57.420 回答