2012-06-20 2 views
4

J'utilise normalement Selenium avec Firefox lors de l'exécution manuelle de mes tests de concombre. Mais quand j'ai lancé Autotest, je voudrais qu'ils soient lancés en utilisant Capybara-webkit car sinon Firefox saute toujours au premier plan, et c'est très agaçant.Utilisez Capybara-webkit (au lieu de Selenium) lorsque le concombre est exécuté via Autotest?

Alors, comment cela pourrait-il être réalisé? Je suppose que je dois mettre

Capybara.javascript_driver = :webkit 

dans le fichier env.rb selon que le test est exécuté par Autotest ou non, mais comment distinguer?

Une autre option serait de dire à Firefox de démarrer en arrière-plan, mais comment cela peut-il être réalisé?

Voici quelques solutions de contournement possibles: utilisez le chrome! Celui-ci semble démarrer en arrière-plan, donc il n'interrompra pas votre flux de travail. Voir http://collectiveidea.com/blog/archives/2011/09/27/use-chrome-with-cucumber-capybara/.

Merci beaucoup! Josh

Répondre

1

Si vous utilisez ce dans le cadre d'un projet Rails, je vous recommande de créer un nouveau groupe de test, l'un pour exécuter localement (à savoir :test) et un pour courir avec autotests (à savoir :autotest).

Dans votre fichier env.rb vous pouvez faire quelque chose comme ce qui suit:

if Rails.env.autotest? 
    Capybara.javascript_driver = :webkit 
else 
    Capybara.javascript_driver = :selenium 
end 

qui suppose que vous vous utilisez Rails 3. Si vous n'êtes pas encore en cours d'exécution Rails 3 Je pense que vous pouvez simplement utiliser RAILS_ENV pour obtenir le nom de l'environnement actuel.

Une fois que ce paramètre est activé, modifiez Autotest pour utiliser l'environnement :autotest.

Questions connexes