[rspec-users] anyone able to explain logic behind "rake spec" startup (e.g. db:test:prepare => abort_if_pending_migration => invoke environment => etc etc)

Hongli Lai hongli at plan99.net
Thu Nov 6 07:01:17 EST 2008


Greg Hauptmann wrote:
> anyone able to explain logic behind "rake spec" startup? i.e. the
> below steps & why things occur when they do
> 
> Macintosh-2:myequity greg$ rake spec --trace
> (in /Users/greg/source/myequity)
> ** Invoke spec (first_time)
> ** Invoke db:test:prepare (first_time)
> ** Invoke db:abort_if_pending_migrations (first_time)
> ** Invoke environment (first_time)
> ** Execute environment
> ** Execute db:abort_if_pending_migrations
> ** Execute db:test:prepare
> ** Invoke db:test:load (first_time)
> ** Invoke db:test:purge (first_time)
> ** Invoke environment
> ** Execute db:test:purge
> ** Execute db:test:load
> ** Invoke db:schema:load (first_time)
> ** Invoke environment
> ** Execute db:schema:load
> ** Execute spec
> <cut>

'spec' depends on 'db:test:prepare'. 'db:test:prepare' runs any pending 
migrations on your development database, and copies the schema structure 
to the test database. This is to keep the development database's 
structure and the test database's structure in sync.

Almost everything you see here is invoked by 'db:test:preare'.


More information about the rspec-users mailing list