Я опытный программист, но новичок в 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?Или моя цель нежелательна для начала?