我不知道为什么这一切都突然发生.我想知道如何解决,如果其他任何人以前遇到过,或有什么想法的想法.使用bundle exec不修复,具有相同的行为.
耙式0.9.2.2
rails版本3.2.1
rspec版本2.8.0
rake db:test:prepare --trace ** 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:test:load_schema (first_time) ** Invoke db:test:purge ** Execute db:test:load_schema ** Invoke db:schema:load (first_time) ** Invoke environment ** Execute db:schema:load /Users/ivan/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:167:in `block in non_options': file not found: db:test:prepare (ArgumentError) from /Users/ivan/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:146:in `map!' from /Users/ivan/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:146:in `non_options' from /Users/ivan/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:207:in `non_options' from /Users/ivan/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:52:in `process_args' from /Users/ivan/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/minitest/unit.rb:891:in `_run' from /Users/ivan/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/minitest/unit.rb:884:in `run' from /Users/ivan/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:21:in `run' from /Users/ivan/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:326:in `block (2 levels) in autorun' from /Users/ivan/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:27:in `run_once' from /Users/ivan/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:325:in `block in autorun'
这是我的耙子
→ rake -T rake about # List versions of all Rails frameworks and the environment rake assets:clean # Remove compiled assets rake assets:precompile # Compile all the assets named in config.assets.precompile rake bourbon:install[sass_path] # Move files to the Rails assets directory. rake clean # Remove any temporary products. rake clobber # Remove any generated file. rake cucumber # Alias for cucumber:ok rake cucumber:all # Run all features rake cucumber:ok # Run features that should pass rake cucumber:rerun # Record failing features and run only them if any exist rake cucumber:wip # Run features that are being worked on rake db:create # Create the database from config/database.yml for the current Rails.env (use db:crea... rake db:database_dump # Dump the current database to a MysqL file rake db:drop # Drops the database for the current Rails.env (use db:drop:all to drop all databases) rake db:fixtures:load # Load fixtures into the current environment's database. rake db:migrate # Migrate the database (options: VERSION=x,VERBOSE=false). rake db:migrate:projects # Migrates Projects rake db:migrate:status # Display status of migrations rake db:rollback # Rolls the schema back to the prevIoUs version (specify steps w/ STEP=n). rake db:schema:dump # Create a db/schema.rb file that can be portably used against any DB supported by AR rake db:schema:load # Load a schema.rb file into the database rake db:seed # Load the seed data from db/seeds.rb rake db:setup # Create the database,load the schema,and initialize with the seed data (use db:res... rake db:structure:dump # Dump the database structure to db/structure.sql. Specify another file with DB_STRUC... rake db:version # Retrieves the current schema version number rake doc:app # Generate docs for the app -- also available doc:rails,doc:guides,doc:plugins (opt... rake log:clear # Truncates all *.log files in log/ to zero bytes rake middleware # Prints out your Rack middleware stack rake notes # Enumerate all annotations (use notes:optimize,:fixme,:todo for focus) rake notes:custom # Enumerate a custom annotation,specify with ANNOTATION=CUSTOM rake paperclip:clean # Cleans out invalid attachments. rake paperclip:refresh # Refreshes both Metadata and thumbnails. rake paperclip:refresh:Metadata # Regenerates content_type/size Metadata for a given CLASS (and optional ATTACHMENT). rake paperclip:refresh:missing_styles # Regenerates missing thumbnail styles for all classes using Paperclip. rake paperclip:refresh:thumbnails # Regenerates thumbnails for a given CLASS (and optional ATTACHMENT and STYLES splitt... rake rails:template # Applies the template supplied by LOCATION=(/path/to/template) or URL rake rails:update # Update configs and some other initially generated files (or use just update:configs... rake routes # Print out all defined routes in match order,with names. rake secret # Generate a cryptographically secure secret key (this is typically used to generate ... rake simplecov # Run tests for simplecov rake spec # Run all specs in spec directory (excluding plugin specs) rake spec:controllers # Run the code examples in spec/controllers rake spec:helpers # Run the code examples in spec/helpers rake spec:lib # Run the code examples in spec/lib rake spec:mailers # Run the code examples in spec/mailers rake spec:models # Run the code examples in spec/models rake spec:rcov # Run all specs with rcov rake spec:requests # Run the code examples in spec/requests rake spec:routing # Run the code examples in spec/routing rake spec:views # Run the code examples in spec/views rake stats # Report code statistics (KLOCs,etc) from the application rake test # Runs test:units,test:functionals,test:integration together (also available: test:... rake test:recent # Run tests for {:recent=>"test:prepare"} / Test recent changes rake test:single # Run tests for {:single=>"test:prepare"} rake test:uncommitted # Run tests for {:uncommitted=>"test:prepare"} / Test changes since last checkin (onl... rake time:zones:all # Displays all time zones,also available: time:zones:us,time:zones:local -- filter ... rake tmp:clear # Clear session,cache,and socket files from tmp/ (narrow w/ tmp:sessions:clear,tmp... rake tmp:create # Creates tmp directories for sessions,sockets,and pids Run options: # Running tests: Finished tests in 0.000395s,0.0000 tests/s,0.0000 assertions/s. 0 tests,0 assertions,0 failures,0 errors,0 skips
解决方法
当某事(例如宝石)有一行像这样简单的行时会发生什么:
require 'test/unit'
该文件has an at_exit
hook将自动尝试运行测试,使用命令中的最后一个“短语”作为要运行的测试的名称.这就是为什么它报告db:test:prepare找不到.
例如,shoulda-context gem会这样做.我们正在Spree使用它,并得到与您相同的问题.我打开了pull request to fix this issue.