2011-02-11 8 views
5

Mam problem z próbą uzyskania przykładu ogórka, który działa pod selenem. BiegnęSelen nie działa z Cucumber/Capybara (od razu po wyjęciu z pudełka) - MacOSX

  • Rails3
  • Ogórek 0.10.0
  • Kapibara 0.4.1.2

Czytając DOCO na , wydaje się, że wszystko, czego potrzebujesz, aby dać przykład prowadzono w selen wykonać następujące czynności:

Krok 1: przedrostek scenariusz z @javascript

@javascript 
Scenario: User does x 
... 

Krok 2: Konfiguracja env.rb powiedzieć kapibary, który sterownik do użycia:

Capybara.javascript_driver = :selenium 

Kiedy biegnę:

bundle exec cucumber feature/myfeature.feature 

uzyskać następujące:

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 

Nie okno firefox. Nic. Działa, zawiesza się i umiera.

więc sprawdzić, czy kapibary i webdriver selen działa, napisałem poniższy kod:

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 

i prowadził go za pomocą:

bundle exec ruby /tmp/test.rb 

to działa. Firefox otwiera okno i przechodzi do strony www.stackoverflow.com.

Jak więc uzyskać informacje diagnostyczne, aby zrozumieć, co ogórek robi na kapibarze?

Używam OSX10., Ruby 1.8.7 i Firefox 3.6.13.

+0

Kapibara 0.4.0 ma pół roku. Zalecam uruchomienie "aktualizacji pakietu" - może to już rozwiąże Twój problem. –

+0

Jestem teraz na Kapibarze 0.4.1.2. Taki sam problem. – BlueFish

+0

Czy istnieje sposób na uzyskanie niektórych informacji dziennika? – BlueFish

Odpowiedz

7

Ok ... Znalazłem mój problem. Gdzieś w miskach ogórka jest zależność od DatabaseCleaner, która jest uruchamiana raz, gdy używasz sterownika selenu. Komunikat o błędzie:

F______________F 

Powiedział mi, że wystąpił błąd w konfiguracji i rozłączeniu. Ogórek nie zgłaszał wyjątku i nawet z -b nie zrobił nic.

Jak znalazłem problem:

  1. Dodaj ruby-debug jako zależność gem

  2. dodawania require "ruby-debug" ENV.rb

  3. dodałem następujące oświadczenie env.rb:

Before do 
    breakpoint; 0 
end 
  1. Ran funkcji przy użyciu wiązki EXEC. Debugger wyrzucił.

  2. Wpisz kota StandardError który powie debugera do breakpoint kiedy „StandardError” jest wyrzucane. StandardError to klasa podstawowa dla wszystkich błędów w ogorkach. Chcemy dowiedzieć się, gdzie jest zgłaszany błąd i dlaczego.

  3. Wpisz cd powiedzieć debugger, aby wznowić

Po dodaniu bazy czystsze jako zależność gem, wszystko odszedł. Firefox zaczął się rozpalać, a rzeczy zaczęły działać zgodnie z reklamą.

+0

Miałem ten sam problem, gdy aplikacja nie mogła połączyć się z bazą danych testów. Twoje kroki dały mi ślad stosu, więc mogłem znaleźć problem. –

0

Próbowałeś

bundle exec cucumber feature/myfeature.feature 

!!

+0

Ten sam wynik. Błąd z tym samym błędem. – BlueFish

+0

Możesz uzyskać informacje z dziennika testu, używając: tail -f log/test.log –

+0

Dzięki, ale to nie jest informacja, której szukam. Próbuję zrozumieć, dlaczego cucumber/capybara nie uruchamia firefoxa, aby rozpocząć wykonywanie scenariusza. Dziennik testów tego nie pokazuje. Pokazuje (poprawnie) wszelkie wstawki ActiveModel itp. – BlueFish