Как запустить консоль Rails в среде тестирования и помощник по нагрузочному тестированию.РБ?



фон: у меня возникли некоторые проблемы с драгоценным камнем Thoughtbot "Factory Girl", который используется для создания объектов для использования в модульных и других тестах. Я бы хотел подойти к консоли и запустить разные заводские звонки, чтобы проверить, что происходит. Например, я хотел бы пойти туда, чтобы сделать...



>> Factory(:user).inspect


Я знаю, что вы можете запустить консоль в разных средах...



$ script / console RAILS_ENV=test



но когда я это делаю, Заводской класс не является доступный. Похоже, что test_helper.rb Не загружается.



Я пробовал различные require вызовы, включая один с абсолютным путем к test_helper.rb но они не точно так же:



$ script/console RAILS_ENV=test
>> require '/Users/ethan/project/contactdb/test/test_helper.rb'
Errno::ENOENT: No such file or directory -
/Users/ethan/project/contactdb/config/environments/RAILS_ENV=test.rb


Grr. Ага.

534   8  

8 ответов:

Рельсы

выполнить script/console --help. Вы заметите, что синтаксис script/console [environment], который в вашем случае составляет script/console test.

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

в качестве примечания: действительно странно, что различные двоичные файлы в скрипте / имеют разные способы установки рельсов окружающая среда.

для рельсов 3 и 4

выполнить rails c test. Добавить bundle exec если вам это нужно для текущей среды приложения.

В рельсы 3, просто делать rails console test или rails console production или rails console development (по умолчанию).

script/console test

должно быть все, что вам нужно.

Дэвид Смит прав, просто сделайте

script/console test

команда help покажет, почему это работает:

$ script/console -h
Usage: console [environment] [options]
    -s, --sandbox                    Rollback database modifications on exit.
        --irb=[irb]                  Invoke a different irb.
        --debugger                   Enable ruby-debugging for the console.

Это [среда]

вы можете указать среду, в которой должна работать консольная команда.

rails c [environment]

примеры

1) Для Постановки

rails c staging

2) Для Производства

rails c production

для источника и подробное описание:Командная Строка Rails

убедитесь, что вы установили драгоценный камень, и вы добавили следующую строку либо в вашей среде.РБ или тест.rb файл.

config.gem "thoughtbot-factory_girl", :lib => "factory_girl", :source => "http://gems.github.com"

Я разделяю боль Аскера. Здесь действительно есть три отдельных вопроса, некоторые из которых рассматриваются, а некоторые нет:

  1. как запустить консоль в тестовой среде?

    для последних версий Rails,bundle exec rails c test, или альтернативные синтаксисы для этого.

  2. как вы гарантируете, что test / test_helper.rb загружается в эту консольную сессию?

    что-то вроде require './test/test_helper' должны сделать это.

    для меня, это возвращает true, указывая, что он уже не был загружен, когда я запустил консоль. Если это утверждение возвращает false, то вы просто потратили несколько нажатий клавиш, но вы все еще хорошо идти.

  3. как только test_helper загружен, как вы вызываете методы, определенные в нем?

    в типичном test_helper пользовательские методы обычно определяются как методы экземпляра ActiveSupport:: TestCase. Поэтому, если вы хотите позвонить одному из них, вам нужен экземпляр этого класс. Методом проб и ошибок ActiveSupport::TestCase.новый имеет один обязательный параметр, так...передай ему что-нибудь.

    Если ваш test_helper имеет метод с именем create_user, вы можете вызвать его таким образом: ActiveSupport::TestCase.new("no idea what this is for").create_user

Тест Env

rails console test # or just rails c test

Развитие Env

rails console # or just rails c

Comments

    Ничего не найдено.