如何获得devise_async黄瓜工作?(How do I get devise_async wo

2019-08-02 19:39发布

我是按照说明书devise_async按照README和我滚制定2.1.2和delayed_job的。 在我的测试中的黄瓜,我不再收到确认电子邮件作为注册过程的一部分。 有什么是我应该做的测试的一部分? 我已经设定延迟工作在我的测试环境设置以下跳过测试的实际延迟。

Delayed::Worker.delay_jobs = false

但即使有此设置为true,它仍然失败,虽然较为缓慢。 如果我删除devise_async宝石和相关线路,一切阵阵回到生活。

谢谢,格雷姆

Answer 1:

色器件,异步的新版本将触发邮件的记录已被提交到数据库后。 使用RSpec,每个测试被包裹在由默认事务。 是否黄瓜做? 在这种情况下,你需要把这些测试交易掉。

下面是我用RSpec的: http://www.denniskuczynski.com/2012/06/22/changing-individual-test-configuration-based-on-passed-in-options.html



Answer 2:

你可以关闭黄瓜ENV交易

了解如何使用:

https://github.com/cucumber/cucumber/wiki/Browsers-and-Transactions



Answer 3:

您是否尝试过使用延迟:: Worker.new.work_off的方法呢? 不知道它适用于异步设计,但它以前为我工作检查电子邮件。

使用这个步骤

Given /^Jobs are being dispatched$/ do
  Delayed::Worker.new.work_off 
end

运行测试之前电子邮件这一步?



Answer 4:

如果您在使用设计,异步与sidekiq,如一些评论者在这里问了,解决的办法是有测试运行工联:

require 'sidekiq/testing'
Sidekiq::Testing.inline!

见https://github.com/mperham/sidekiq/wiki/Testing



文章来源: How do I get devise_async working with Cucumber?