如何将Resque集成到Cucumber功能中?
我一直想申请,但运气不好。我不确定Resque和/或Cucumber自2010年8月以来是否发生了很大变化 下面您可以找到我采取的方法,也许您可以选择:如何将Resque集成到Cucumber功能中?,cucumber,resque,Cucumber,Resque,我一直想申请,但运气不好。我不确定Resque和/或Cucumber自2010年8月以来是否发生了很大变化 下面您可以找到我采取的方法,也许您可以选择: 告诉我哪里出了问题,我怎样才能解决它 推荐一种将Resque集成到Cucumber功能中的全新方法 我是怎么安装的 Square的博客文章没有关于如何安装它的明确步骤,所以我就是这么做的: 下载到features/support/cucumber\u external\resque\u worker.rb 在config/initializer
features/support/cucumber\u external\resque\u worker.rb
config/initializers/cucumber\u external\u resque.rb
中创建了一个Rails初始值设定项,它执行以下操作:
需要“功能/支持/外部人员”
CucumberExternalResqueWorker.在启动时安装挂钩
cucumber\u external\u resque\u worker.rb
中,我将Rails.env.cucumber?
的实例更改为Rails.env.test?
,因为cucumber在test
环境中运行特性(我确实做了一些将Rails.env
放入cucucucucumber\u external\u resque\u worker.rb)
未初始化常量WorkerBase(namererror)
。也许Resque改变了它命名事物的方式提前感谢!我正在尝试下面介绍的方法:
同步执行resque处理。在我的情况下,我对测试resque不感兴趣,我只想测试我的应用程序中的功能。我今天花了一段时间来处理这个问题,我想我有一个解决方案 这里有一个更新版本,不再需要WorkerBase 它还包括使工作正常所需的配置更改(与您发现的更改相同)
#这是根据以下要点改编的:https://gist.github.com/532100 按平方
#主要区别在于WorkerBase不需要Bluth
#它也在启动时调用prune_dead_workers,这样就不会每隔一次运行就挂起
#它没有做任何特殊的事情来避免连接到您的主redis实例;您应该
#在其他地方这样做
类黄瓜外种皮工人
默认启动超时=1.5分钟
COUNTER\u KEY=“cucumber:计数器”
0级
结束
def在启动挂钩上安装暂停
在你第一次用叉子之前
#复位计数器
暂停(Process.pid)
结束
结束
def安装_worker_base_counter_补丁
Resque.class\U eval do
类别:索引
结束
#DemoJob:
课堂演示作业
def自动队列
:demojob
结束
def执行(作业id)
j=作业.查找(作业id)
j、 value=“完成”
j、 拯救
结束
您可以通过设置
Resque.inline = true
我将这一行添加到我的config/initializers/resque.rb
:
Resque.inline = Rails.env.test?
它比文章中建议的其他方法更简洁。因为它是同步的,所以速度会慢一些。谢谢。我知道这一点,现在用它来代替上面的方法。但我还是想运行集成测试——这意味着整个stack.WorkerBase是Bluth()的一部分…一个基于Redis的简单排队系统..也许Square会使用它。有人有其他选择吗?谢谢,是的!我相信这是一个半新的添加。我一直在使用它,它工作得很好!你也使用了
WorkerBase
类吗?@Trip不,我没有使用WorkerBase
为什么你要创建一个初始值设定项,而你只需要把在您的env.rb中加载内容?这对我来说很有效,但只是间歇性的。大多数情况下,process\u all方法只是挂起:(
Resque.inline = Rails.env.test?