1

テーブルに保存されているドメインを使用して、サイトの特定の側面を判別するアプリがあります。ドメインがデータベースに見つからない場合、エラーが生成されます。

通常、キュウリでテストするときは、ドメインlocalhostを使用しますが、すべてが期待どおりに機能します。capybara-webkitとヘッドレス(サイトのjavascript部分をテストするため)でテストしようとすると、ローカルホストでドメインが見つかりませんというエラーが発生します。

capybara-webkitとheadlessが使用しているドメインとポートを特定して、事前にテーブルに情報を挿入できるようにする方法を教えてもらえますか。または、代わりに事前にカピバラを設定してください。

私は成功せずに次のことを試しました(それはすべて私のnone js / headlessテストで機能しますが)。

Capybara.app_host = "http://localhost"
Capybara.javascript_driver = :webkit

if Capybara.current_driver == :webkit
  require 'headless'

  headless = Headless.new
  headless.start
end
4

1 に答える 1

1

少し試行錯誤して、うまくいくものを見つけました。データベースでローカルホストを参照として使用するのをやめ、代わりに127.0.0.1を使用しました。次に、env.rbのコードを次のように修正しました。

Capybara.javascript_driver = :webkit

if Capybara.current_driver == :webkit
  require 'headless'

  @headless = Headless.new
  @headless.start
end

Before('@javascript') do
  @javascript = true
end

Capybara.app_host = @javascript.present? ? nil : "http://127.0.0.1"

@javascript変数はここでの要件に対して余剰であることに気付きましたが、他の場所で使用しています。なぜ機能するのかわかりませんが、機能します。

于 2012-02-17T15:07:30.370 に答える