Как запустить консоль 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. Ага.
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команда 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 staging2) Для Производства
rails c productionдля источника и подробное описание:Командная Строка Rails
убедитесь, что вы установили драгоценный камень, и вы добавили следующую строку либо в вашей среде.РБ или тест.rb файл.
config.gem "thoughtbot-factory_girl", :lib => "factory_girl", :source => "http://gems.github.com"
Я разделяю боль Аскера. Здесь действительно есть три отдельных вопроса, некоторые из которых рассматриваются, а некоторые нет:
как запустить консоль в тестовой среде?
для последних версий Rails,
bundle exec rails c test, или альтернативные синтаксисы для этого.как вы гарантируете, что test / test_helper.rb загружается в эту консольную сессию?
что-то вроде
require './test/test_helper'должны сделать это.для меня, это возвращает true, указывая, что он уже не был загружен, когда я запустил консоль. Если это утверждение возвращает false, то вы просто потратили несколько нажатий клавиш, но вы все еще хорошо идти.
как только test_helper загружен, как вы вызываете методы, определенные в нем?
в типичном test_helper пользовательские методы обычно определяются как методы экземпляра ActiveSupport:: TestCase. Поэтому, если вы хотите позвонить одному из них, вам нужен экземпляр этого класс. Методом проб и ошибок ActiveSupport::TestCase.новый имеет один обязательный параметр, так...передай ему что-нибудь.
Если ваш test_helper имеет метод с именем create_user, вы можете вызвать его таким образом:
ActiveSupport::TestCase.new("no idea what this is for").create_user
Comments