4

私は、統合テストに Resque を含めるという Square の方法を適用しようとしてきましたが、うまくいきませんでした。2010 年 8 月以降、Resque や Cucumber が大幅に変更されたかどうかはわかりません。

以下に、私が取ったアプローチを示します。おそらく、次のいずれかを実行できます。

  1. どこが間違っていたのか、どうすれば修正できるのか教えてください
  2. Resque を Cucumber 機能に統合するまったく新しい方法を推奨する

インストールするために私がしたこと

Square のブログ投稿には、インストール方法に関する明確な手順がなかったので、これが私がしたことです:

  1. 彼らの要点をにダウンロードしましたfeatures/support/cucumber_external_resque_worker.rb
  2. config/initializers/cucumber_external_resque.rb次のことを 行う Rails イニシャライザを作成しました。
    1. require 'features/support/cucumber_external_resque_worker'
    2. CucumberExternalResqueWorker.install_hooks_on_startup
  3. では、 Cucumber が環境内で機能を実行していたためcucumber_external_resque_worker.rb、 のインスタンスを に変更Rails.env.cucumber?しました (確認のために でいくつか変更しました。Rails.env.test?testputs Rails.envcucumber_external_resque_worker.rb
  4. 私は機能を実行します。この時点で、エラーが発生するため、行き詰まりますuninitialized constant WorkerBase (NameError)。おそらく、Resque は名前の付け方を変更しました。

前もって感謝します!

4

3 に答える 3

6

設定することで、Resqueジョブを同期的に実行できます

Resque.inline = true

この行をに追加しましたconfig/initializers/resque.rb

Resque.inline = Rails.env.test?

投稿で提案されている他のアプローチよりも簡潔です。同期なので少し遅くなります。

于 2012-11-11T16:01:18.893 に答える
0

ここで説明するアプローチを試しています:

Cucumber と Resque ジョブ

resque 処理を同期的に実行します。私の場合、Resque のテストには興味がなく、アプリケーションの機能をテストしたいだけです。

于 2011-08-05T06:05:48.117 に答える