如何将Resque集成到Cucumber功能中?

如何将Resque集成到Cucumber功能中?,cucumber,resque,Cucumber,Resque,我一直想申请,但运气不好。我不确定Resque和/或Cucumber自2010年8月以来是否发生了很大变化 下面您可以找到我采取的方法,也许您可以选择: 告诉我哪里出了问题,我怎样才能解决它 推荐一种将Resque集成到Cucumber功能中的全新方法 我是怎么安装的 Square的博客文章没有关于如何安装它的明确步骤,所以我就是这么做的: 下载到features/support/cucumber\u external\resque\u worker.rb 在config/initializer

我一直想申请,但运气不好。我不确定Resque和/或Cucumber自2010年8月以来是否发生了很大变化

下面您可以找到我采取的方法,也许您可以选择:

  • 告诉我哪里出了问题,我怎样才能解决它
  • 推荐一种将Resque集成到Cucumber功能中的全新方法
  • 我是怎么安装的 Square的博客文章没有关于如何安装它的明确步骤,所以我就是这么做的:

  • 下载到
    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?