私はrails 3.2とDeviseを使っているアプリケーションを持っています。私はrspecとCapybaraを使ってリクエストテストスイートを持っています。Rails 3 with Deviseとrspec:テストヘルパーの信頼性を失う
Capybaraにサインインフォームを記入して提出するのではなく、サインインヘルパーでWardenテストヘルパーを使用することに移行しようとしました。私のテストスイートのサイズと複雑さのため、これはテストランタイムの節約額の半分以上をもたらします。私の構成では
は次のとおりです。
RSpec.configure do |config|
config.include Warden::Test::Helpers, :type => :request
config.after :each do
Warden.test_reset!
end
end
とコンテキストで:
let!(:current_user) { FactoryGirl.create(:user) }
background do
login_as(current_user, :scope => :user)
end
これらの構成を使用してテストスイートを実行するときしかし、ほぼすべてのテストの実行が原因異なるランダムに失敗し、要求スペックを持っています(具体的には、user_signed_in?
の条件で制御されるリンク)
My questio n:他の誰かがこのような信頼できないことに遭遇し、それをどのように緩和することができますか?
私はこれが最も簡単で、それが私が今使っている解決策であることに同意します。しかし、私は本当に1分半でテストを中止したいと思っています。 –
'user_session_path'に電子メール/パスワードを投稿してみましたか? – DVG
はい、セレンでうまく動作しますが、セレンとFirefoxの問題により、データをURLに直接ポスティングすることをサポートしていないcapybara-webkitが使用されています。 –