I wouldn't expect a task named `setup` to drop the database. Why not do something like this:

```
namespace :db do
  namespace :test do
    task :setup do
      Rails.env = 'test'
      Rake::Task["db:create"].invoke
      Rake::Task["db:migrate"].invoke
    end
   
    task :reset do
      Rake::Task["db:drop"].invoke
      Rake::Task["setup"].invoke
    end
  end
end