3

Guard で実行される Konacha テストで、Capybara のドライバーとして Poltergeist を使用するのに問題があります。

config/initializers/konacha.rb に次のものがあります。

Konacha.configure do |config|
  require 'capybara/poltergeist'
  config.spec_dir     = "spec/javascripts"
  config.spec_matcher = /_spec\.|_test\./
  config.driver       = :poltergeist
  config.stylesheets  = %w(manifest_public)
end if defined?(Konacha)

私のテストはポルターガイストで正常に実行されますbundle exec rake konacha:run

ただし、次の Guardfile を使用すると:

guard :konacha, driver: :poltergeist do
  watch(%r{^app/assets/javascripts/(.*)\.js(\.coffee)?$}) { |m| "#{m[1]}_spec.js" }
  watch(%r{^spec/javascripts/.+_spec(\.js|\.js\.coffee)$})
end

Konacha の起動中に Guard が不平を言う:

14:18:05 - INFO - こなちゃ開始

14:18:05 - エラー -Capybara::DriverNotFoundError: :poltergeist という名前のドライバーが見つかりませんでした。使用可能なドライバー: :rack_test、:selenium>

4

1 に答える 1

3

私はうまくいく解決策を見つけましたが、それは少しハッキーなようです. Capybara::PoltergeistGuard が Konacha をロードするまで、Konacha イニシャライザがロードされていないことに気付きました。そのため、Guardfile でドライバの登録を複製する必要がありました。

require 'capybara/poltergeist'
Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, {:js_errors => true})
end

guard :konacha, driver: :poltergeist do
  watch(%r{^app/assets/javascripts/(.*)\.js(\.coffee)?$}) { |m| "#{m[1]}_spec.js" }
  watch(%r{^spec/javascripts/.+_spec(\.js|\.js\.coffee)$})
end
于 2013-11-05T19:36:44.187 に答える