Mario Aquino
2011-Mar-05 03:53 UTC
[rspec-users] db:test:prepare interfering with rake spec pattern
I have a tricky problem with running rake spec in a Rails 3.0.3 project (using rspec-2.5.0, rspec-rails and rake 0.8.7). It may be that this mailing list is not the correct one to ask for help, but I am hoping that it is. When I run ''rake spec'', the spec files for one of the gems my project uses are executed in addition to the spec files for my own project. I want to restrict the spec files that the rake task runs so that only my own project specs are executed because there is a conflict (from factory_girl) that gets triggered by the inclusion of the specs from one of my gem dependencies. I have created a custom rake task that calls the rspec rake task as follows: require ''rake'' require ''rspec/core/rake_task'' namespace :spec do desc "Run specs without invoking bundler" RSpec::Core::RakeTask.new(''nob'' => ''db:test:prepare'') do |t| t.pattern = [''spec/**/*_spec.rb'', ''vendor/engines/proposals/spec/ **/*_spec.rb''] t.skip_bundler = true end end My task declares a dependency on the ''db:test:prepare'' task. When the db:test:prepare task runs, somehow the pattern that gets set by my task is ignored and instead specs from one of the gems my project depends on are executed in addition to my own project gems and this is a big problem for me. I would like to trigger the db setup-related activities that normally run before my specs execute. I haven''t been able to figure out what is causing the ''pattern'' I am declaring to be ignored when db:test:prepare runs, but something is definitely resetting the pattern (when I run my task without the ''db:test:prepare'' dependency, only the specs from my project are executed). Any assistance would be appreciated. --Mario
David Chelimsky
2011-Mar-05 15:21 UTC
[rspec-users] db:test:prepare interfering with rake spec pattern
On Mar 4, 2011, at 9:53 PM, Mario Aquino wrote:> I have a tricky problem with running rake spec in a Rails 3.0.3 > project (using rspec-2.5.0, rspec-rails and rake 0.8.7). It may be > that this mailing list is not the correct one to ask for help, but I > am hoping that it is. When I run ''rake spec'', the spec files for one > of the gems my project uses are executed in addition to the spec files > for my own project. I want to restrict the spec files that the rake > task runs so that only my own project specs are executed because there > is a conflict (from factory_girl) that gets triggered by the inclusion > of the specs from one of my gem dependencies. > > I have created a custom rake task that calls the rspec rake task as > follows: > > require ''rake'' > require ''rspec/core/rake_task'' > > namespace :spec do > desc "Run specs without invoking bundler" > RSpec::Core::RakeTask.new(''nob'' => ''db:test:prepare'') do |t| > t.pattern = [''spec/**/*_spec.rb'', ''vendor/engines/proposals/spec/**/*_spec.rb''] > t.skip_bundler = true > end > end > > > My task declares a dependency on the ''db:test:prepare'' task. When the > db:test:prepare task runs, somehow the pattern that gets set by my > task is ignoredWhat happens if you remove that dependency and run: rake db:test:prepare rake spec:nob> and instead specs from one of the gems my project > depends on are executed in addition to my own project gems and this is > a big problem for me. I would like to trigger the db setup-related > activities that normally run before my specs execute. I haven''t been > able to figure out what is causing the ''pattern'' I am declaring to be > ignored when db:test:prepare runs, but something is definitely > resetting the pattern (when I run my task without the > ''db:test:prepare'' dependency, only the specs from my project are > executed). > > Any assistance would be appreciated. > > --Mario > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-usersCheers, David