Подтвердить что ты не робот

Rake db: test: подготовка в приложении Rails 3 с файлом не найдена

Я не знаю, почему это происходит внезапно. Я хотел бы знать, как решить, пожалуйста, если кто-то еще сталкивался с этим раньше или имеет идеи о том, где искать. Использование bundle exec не исправляет, имеет такое же поведение.

версия рейка 0.9.2.2 рельсы версии 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 -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 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, cache, 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
4b9b3361

Ответ 1

Это то, что происходит, когда что-то (например, драгоценный камень) имеет строку, которая делает что-то простое:

require 'test/unit'

Этот файл имеет at_exit hook, который автоматически попытается запустить тесты, используя последнюю "фразу" в вашей команде в качестве имя запускаемого теста. Вот почему сообщения db:test:prepare не могут быть найдены.

Например, камень shoulda-context делает это. Мы использовали его в Шпрее и получили ту же проблему, что и вы. Я открыл запрос для устранения этой проблемы.

Ответ 2

Это сработало для меня:

Gemfile:

gem 'shoulda-context', require: false

test_helper.rb:

require 'shoulda-context'

Ответ 3

Может быть, полезный путь, но вы недавно что-то изменили в своей среде разработки? Как изменить XCode? Я получал всевозможные странные вещи, пока я не перестроился с помощью osx-gcc-installer.

Честно говоря, это похоже на то, что нарушается только камень, но я тоже не могу объяснить многие из моих ошибок.

Ответ 4

Я могу воспроизвести очень похожую ошибку при разных обстоятельствах (внешние рельсы):

  • MRI 1.9.3-p125
  • Рейк 0.9.2
  • Rakefile: Rake::TestTask.new
  • test/test_foo.rb: require "test/unit"

(жалуется тест/тест *.rb не найден, тот же стек)

Обходные:

Учитывая это, возможно, возьмите второй взгляд на грабли. В частности, если использовать bundler, попробуйте bundler exec rake ..., а не просто rake ...?

Ответ 5

Я смог исправить это, добавив строку "gem" test-unit "в мой Gemfile