J'ai un test Rspec avec le code comme ceci:Rspec/Capybara non-déterminisme
visit root_path(cc: coupon.code)
using_wait_time 5 do
page.should have_content 'Welcome! You have applied coupon ' + coupon.code
end
Fondamentalement, l'utilisateur peut frapper notre chemin racine avec un code promo, et que le code devrait se mettre dans un cookie et confirmé avec un retour visuel.
Ce test fonctionne si je le lance par lui-même:
Finished in 36.81 seconds (files took 6.69 seconds to load)
2 examples, 0 failures
Mais si je le lance dans le cadre de toute ma série de tests, je reçois des erreurs:
1) Setup sets coupon
Failure/Error: page.should have_content 'Welcome! You have applied coupon ' + coupon.code
expected #has_content?("Welcome! You have applied coupon foo") to return true, got false
# ./spec/requests/setup_spec.rb:29:in `block (3 levels) in <top (required)>'
# ./spec/requests/setup_spec.rb:28:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:87:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:86:in `block (2 levels) in <top (required)>'
La seule façon que peut se produire si le cookie n'est pas réglé. Est-ce que quelqu'un sait pourquoi courir le test par lui-même plutôt que le faire fonctionner dans le cadre de toute la suite ferait une différence?
J'ai essayé cela en utilisant la gemme show_me_the_cookies, et cela n'a eu aucun effet. Notez que l'utilisation de browser.manage ne fonctionne qu'avec Selenium. Si vous utilisez Webkit, cela provoquera une erreur. –