2011-02-11 3 views
5

J'ai de la difficulté à essayer d'obtenir un exemple de concombre à utiliser avec du sélénium. Je suis enLe sélénium ne fonctionne pas avec le concombre/Capybara (prêt à l'emploi) - MacOSX

  • Rails3
  • concombre 0.10.0
  • Capybara 0.4.1.2

Lecture du doco sur , il semblerait que tout ce que je dois obtenir un exemple courir sous le sélénium est de faire ce qui suit:

Étape 1: préfixer le scénario avec @javascript

@javascript 
Scenario: User does x 
... 

Étape 2: Configurer env.rb pour dire capybara pilote à utiliser:

Capybara.javascript_driver = :selenium 

Quand je lance:

bundle exec cucumber feature/myfeature.feature 

Je reçois le texte suivant:

Using the default profile... 
F------------F 

Failing Scenarios: 
cucumber features/myfeature.feature:7 # Scenario: User does x 

1 scenario (1 failed) 
12 steps (12 skipped) 
0m0.012s 

Non fenêtre firefox. Rien. Il court, se bloque et meurt.

Donc, pour vérifier si capybara et le WebDriver de sélénium travaille, j'ai écrit le code suivant:

require 'capybara' 
require 'capybara/dsl' 

Capybara.default_driver = :selenium 

class Test 
    include Capybara 
    def dotest 
    visit('http://www.stackoverflow.com') 
    end 
end 

Test.new.dotest 

Et couru en utilisant:

bundle exec ruby /tmp/test.rb 

qui fonctionne. Firefox ouvre la fenêtre et navigue vers www.stackoverflow.com. Alors, comment puis-je obtenir des informations de diagnostic pour comprendre ce que le concombre fait pour capybara?

Je cours OSX10., Ruby 1.8.7 et Firefox 3.6.13.

+0

Capybara 0.4.0 a une demi-année. Je recommande d'exécuter 'bundle update' - peut-être que cela résoudra déjà votre problème. –

+0

Je suis maintenant sur Capybara 0.4.1.2. Même problème. – BlueFish

+0

Existe-t-il un moyen d'obtenir des informations de journal? – BlueFish

Répondre

7

Ok ... J'ai découvert mon problème. Quelque part dans les bols de concombre est une dépendance sur DatabaseCleaner qui est déclenché une fois lorsque vous utilisez le pilote sélénium. L'instruction d'échec:

F______________F 

Me dit que l'échec se produisait dans la configuration et le démontage. Le concombre ne signalait pas l'exception et même avec le -b, il n'a rien fait.

Comment j'ai trouvé le problème:

  1. Ajouter ruby-debug comme une dépendance gemme

  2. Ajouter require "ruby-debug" à env.rb

  3. J'ajouté la déclaration suivante à env.rb:

Before do 
    breakpoint; 0 
end 
  1. courais le fonction à l'aide exec bundle. Le débogueur a démarré.

  2. Tapez cat StandardError qui indiquera au débogueur le point d'arrêt lorsque "StandardError" est levé. StandardError est la classe de base pour toutes les erreurs dans le concombre. Ce que nous voulons faire est de savoir où l'erreur est lancée et pourquoi.

  3. Tapez suite de dire le débogueur pour reprendre

Après avoir ajouté base de données propre en tant que dépendance de pierres précieuses, tout est parti. Firefox a commencé à tirer et les choses commencent à fonctionner comme annoncé.

+0

J'ai eu le même problème lorsque l'application ne pouvait pas se connecter à la base de données de test. Vos pas m'ont donné une trace de pile, ainsi j'ai pu trouver le problème. –

0

Avez-vous essayé

bundle exec cucumber feature/myfeature.feature 

!!

+0

Même résultat. Échec avec la même erreur. – BlueFish

+0

Vous pouvez obtenir des informations de journal de test en utilisant: tail -f log/test.log –

+0

Merci, mais ce n'est pas l'information que je suis après. J'essaie de comprendre pourquoi cucumber/capybara ne lance pas firefox pour commencer à exécuter le scénario. Le journal de test ne le montre pas. Il montre (correctement) toutes les insertions ActiveModel etc – BlueFish

Questions connexes