Как воспроизвести модульные тесты Rails в консоли Rails (ошибка о маршрутах) - PullRequest
0 голосов
/ 15 ноября 2018

Я опытный программист, но новичок в Ruby и Rails.Я хочу попробовать создать новые тесты для существующего проекта, поэтому я подумал, что хорошим способом начать было бы построчное воспроизведение существующих тестов в консоли Rails.Однако я не смог заставить его работать.

Поскольку этот вопрос подсказывает, я пошел в главный каталог проекта и сделал это:

$ rails console -e test
Loading test environment (Rails 5.2.0)
irb(main):001:0> require './test/test_helper'
[Coveralls] Set up the SimpleCov formatter.
[Coveralls] Using SimpleCov's 'rails' settings.
   (1.0ms)  SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
=> true

Пока все хорошо.Но я все еще не мог загрузить реальные тестовые модули:

irb(main):002:0> require './test/controllers/users_controller_test'
Traceback (most recent call last):
        2: from (irb):2
        1: from test/controllers/users_controller_test.rb:1:in `<top (required)>'
LoadError (cannot load such file -- test_helper)

Итак, я попытался настроить $ LOAD_PATH следующим образом, что, кажется, работает:

irb(main):003:0> $LOAD_PATH.unshift '/{{absolute path to project}}/test'
{{irb now prints the new $LOAD_PATH which is really long}}
irb(main):004:0> require './test/controllers/users_controller_test'                         
=> true

Но когда я пытаюсьчтобы запустить реальные тесты, он все еще не работает.Это выглядит как некие выгруженные «маршруты»:

irb(main):008:0> my_test = UsersControllerTest.new("My Test")
=> #<UsersControllerTest:0x000055c90aadd148 @NAME="My Test", @failures=[], @assertions=0>
irb(main):009:0> my_test.test_routes
Traceback (most recent call last):
        2: from (irb):9
        1: from test/controllers/users_controller_test.rb:11:in `test_routes'
NoMethodError (undefined method `recognize_path' for nil:NilClass)
irb(main):010:0> my_test.test_new_view
Traceback (most recent call last):
        2: from (irb):10
        1: from test/controllers/users_controller_test.rb:191:in `test_new_view'
RuntimeError (@routes is nil: make sure you set it in your test's setup method.)

Есть ли более простой способ запуска тестов из консоли?Как я могу устранить пропущенные «маршруты», чтобы я мог запускать тесты с консоли rails?Или моя цель нежелательна для начала?

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