Capybara - testy nie przechodzą pod culerity

Cześć,

mam problem z Capybarą. Napisałem sobie kilka testów, i wszystkie przechodzą, ale gdy tylko podstawię culerity zamiast domyślnego drivera, wszystko zaczyna się sypać, konkretnie - nie są tworzone instancje obiektów (z Factory_girl). Nie korzystam z Cucumbera, więc może to nie ma prawa działać, sądziłem jednak, że możliwa jest kombinacja Capybara (:culerity) + Shoulda + Factory_Girl. Czy koniecznie do Culerity muszę używać Cucumbera?

Mam jeszcze jeden problem, gdy odpalam jakikolwiek test z wykorzystaniem Culerity na ekran wysypują mi się warningi związane z Gemspec (invalid Gemspec format). Słyszałem o tym problemie, ale tylko w kontekście Rails 3 + Ruby 1.9.2, czy ktoś spotkał się z tym w Rails 2.3?

Nie, nie musisz korzystać z Cucumbera, ale problem jest dziwny. Jakieś wyjątki?

Ja stawiam na to, że cucumber wykonuje je domyślnie z użyciem “transactional fixtures”. Scenariusz odpalany jest w transakcji, więc to co jest stworzone w procesie cucumbera nie jest widoczne przez przeglądarkę.

Spróbuj dodać taga @no-txn. Jak nie pomoze to wklej output, będzie łatwiej zdiagnozować :wink:

@drogus tag chyba mógłbym dodać, gdybym korzystał z Cucumbera :>

No właśnie output nie mówi nic konkretnego. W kwestii ostrzeżeń otrzymuję coś takiego

WARNING:  Invalid .gemspec format in '/home/grzes/.rvm/gems/ruby-1.8.7-p299/specifications/aasm-2.1.5.gemspec'

no i całą treść gemspec przy okazji :wink:

Przy okazji dostaję do każdego testu gratis takie ostrzeżenie

E/home/grzes/.rvm/gems/ruby-1.8.7-p299/gems/activerecord-2.3.8/lib/active_record/named_scope.rb:13: warning: multiple values for a block parameter (0 for 1) from /home/grzes/.rvm/gems/ruby-1.8.7-p299/gems/activerecord-2.3.8/lib/active_record/named_scope.rb:92
Same testy też nic konkretnego nie mówią niestety :confused: Capybara stwierdza tylko, że nie istnieje link, w który chcę kliknąć (a którego obecność wynika z istnienia obiektu), albo, że podaję niepoprawne dane użytkownika (co doprowadziło mnie do tego, że coś się nie zapisuje tak jak powinno)

Przykładowy test :

[code] context “When user tries to log in and puts correct data” do
setup do
@user = Factory(:user)
visit ‘/login’
fill_in “user[login]”, :with => @user.login
fill_in “user[password]”, :with => @user.password
click “Log In”
end

should "he see he's logged in" do
  assert page.has_content? "Log Out"
end

end[/code]

Spróbuj w test_helper ustawić transactional_fixtures na false.

Działa, wielkie dzięki :slight_smile:

Ok, ale to jest dopiero połowa rozwiązania :wink:

W tym momencie wyłączyłeś transactional_fixutres dla wszystkich testów.

Sprawdź jak to można wyłączyć tylko dla konkretnych testów.