как устранить неполадки «теста рейка», отсутствующего в моем списке задач рейка? - PullRequest
0 голосов
/ 20 декабря 2011

У меня есть два приложения. Одним из них является очень простое приложение, которое я создал с помощью rails new..., добавил модульный тест и запустил его. Другое - существующее приложение, которое работает нормально, но я хотел бы добавить к нему несколько тестов. В AppA (простой), когда я запускаю rake -vT, я вижу:

...
rake test               # Runs test:units, test:functionals, test:integrati...
rake test:recent        # Run tests for {:recent=>"test:prepare"} / Test re...
rake test:single        # Run tests for {:single=>"test:prepare"}
rake test:uncommitted   # Run tests for {:uncommitted=>"test:prepare"} / Te...
...

Что кажется нормальным. Но когда я запускаю ту же команду в AppB (существующее приложение), я не вижу ни одной из команд, связанных с rake test. Моей первой мыслью было «перенести» тесты из AppA в AppB, чтобы посмотреть, поможет ли это. Поэтому я вытер все содержимое из тестового каталога в AppB и скопировал тестовый каталог из AppA. Все еще нет rake test в списке приложений. Но я могу запустить модульный тест в AppB через ruby -Itest test/unit/first_test.rb (странно, я должен закомментировать fixtures :all, чтобы заставить его работать, возможно, это ключ).

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Нашел ответ на это прошлой ночью. Где application.rb нового приложения имеет:

  require 'rails/all'

У меня было:

  require "action_controller/railtie"
  require "action_mailer/railtie"
  require "active_resource/railtie"
  require "sprockets/railtie"
  require "rails/test_unit/railtie"

Я сделал это, потому что следовал руководству по MongoMapper, я думаю. Пройдите несколько версий, и последняя строка закомментирована - это реальная причина. Я прокомментировал это в то же время, когда переключил свой ODM на Mongoid. Я не уверен, почему я это прокомментировал, но это определенно сделало это.

0 голосов
/ 21 декабря 2011

Не зная содержимого вашего Rakefile, это действительно сложно отладить, но вы можете пропустить вызов .load_tasks в Rakefile.

Если вы используете Rails 3, у вас должно быть что-то вроде этого:

MyApplication::Application.load_tasks

Эта строка позаботится о загрузке заданий по умолчанию на Rails. Вы можете выполнить тот же вызов require "rails/tasks" в вашем Rakefile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...