Are you running selenium or normal webrat (eg config.mode = :rails or config.mode = :selenium)?

Christopher Bailey wrote:
On Wed, Feb 4, 2009 at 12:54 PM, aslak hellesoy <aslak.helle...@gmail.com <mailto:aslak.helle...@gmail.com>> wrote:

    On Wed, Feb 4, 2009 at 7:21 PM, Christopher Bailey
    <ch...@cobaltedge.com <mailto:ch...@cobaltedge.com>> wrote:
    > I've been battling the strangest behavior, and hoping someone
    can shed some
    > light...
    > I am using RSpec for MVC tests, and then Cucumber for
    stories/features.  I
    > am new to Cucumber, and recently finished converting our RSpec
    Story Runner
    > suite to it.  What I'm seeing is that if I clean the database
    (e.g. rake
    > db:reset), then run all my specs, then run the features, Webrat
    fails to
    > find various fields on form pages.  If I run them in the reverse
    order, with

    Use puts response.body in the failing step definitions to see the html


I'll do that (can't at the moment, but will next go-around).

    > features first, then specs, often times various specs fail
    (seems somewhat
    > random and odd in what may fail).

    Sounds like you have residual data in your test database. Do you have
    transactions turned on for both rspec and cucumber?
    Do your features rely on specific data being in the database before
    the run? How do you get it in there?


I start with a clean DB, then run the specs. At the end, data is left in there. I am running transactional RSpec specs as far as I know, although maybe there's something explicit I need to do? I thought they were on by default. I've noticed that data gets leftover between tests a lot. I see that I have transactional fixtures enabled (I don't use any fixtures though - all my data is created by my own factory methods/generators which are either run in before methods or in the actual spec case). I have Cucumber transactional turned on via this line in env.rb:

Cucumber::Rails.use_transactional_fixtures

No features rely on any pre-existing data.

    Aslak

    > I believe that if I clean the database between each, that things
    work.  I
    > did not previously have to do that with story runner.  But,
    also, what I'm
    > finding is that I can't seem to run rake db:reset twice in the
    same rake
    > task (due to Rake's usual not allowing that), so this makes
    setting up a
    > rake task for CruiseControl.rb hard, as it won't reset the DB a
    second time.
    >  I could probably just run it as a shell command, but that seems
    like a
    > terrible hack.
    > I'm running into this both on MacOS X, and on my CI server which
    is Ubuntu
    > 8.04 running CruiseControl.rb
    > (from git://github.com/benburkert/cruisecontrolrb.git
    <http://github.com/benburkert/cruisecontrolrb.git>).  Has anyone else
    > seen this kind of thing, any ideas?  My versions:
    > ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]
    > rails (2.2.2)
    > rspec (1.1.11)
    > rspec-rails (1.1.11)
    > aslakhellesoy-cucumber (0.1.99.19)
    > nokogiri (1.1.1)
    > webrat (0.4.1)
    > --
    > Christopher Bailey
    > Cobalt Edge LLC
    > http://cobaltedge.com
    >
    > _______________________________________________
    > rspec-users mailing list
    > rspec-users@rubyforge.org <mailto:rspec-users@rubyforge.org>
    > http://rubyforge.org/mailman/listinfo/rspec-users
    >



    --
    Aslak (::)
    _______________________________________________
    rspec-users mailing list
    rspec-users@rubyforge.org <mailto:rspec-users@rubyforge.org>
    http://rubyforge.org/mailman/listinfo/rspec-users




--
Christopher Bailey
Cobalt Edge LLC
http://cobaltedge.com
------------------------------------------------------------------------

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to