Разработка драгоценных камней и тестирование - PullRequest
26 голосов
/ 20 декабря 2010

Я новичок в разработке драгоценных камней Ruby, но я решил попробовать.

Недавно проверял последний эпизод на Railscasts (http://railscasts.com/episodes/245-new-gem-with-bundler) Я использую Bundler для создания своего драгоценного камня.

Однако я не знаю, как проверить мой драгоценный камень.

Конечно, я могу запустить rake install и затем потребовать его от irb , но мне кажется, что это своего рода медленный рабочий процесс.

Я хотел бы создать фиктивное приложение Rails и потребовать гем, ссылаясь на его исходный код. Возможно ли это?конечно, я где-то об этом читал ...

Спасибо!

Ответы [ 4 ]

33 голосов
/ 21 мая 2014

Вы можете включить эти строки в свой Rakefile:

task :console do
  exec "irb -r mygem -I ./lib"
end

Это создаст задачу rake для инициализации нового сеанса irb и предварительной загрузки вашей библиотеки.Теперь все, что вам нужно сделать, это:

$ rake console
24 голосов
/ 20 декабря 2010

Я не могу порекомендовать это руководство от Райана Бигга: http://bundler.io/v1.16/guides/creating_gem.html. Он поможет вам создать драгоценный камень с помощью Bundler и настроить автоматическое тестирование.Вы можете разрабатывать свои функции, даже не запуская код вручную.Это рабочий процесс, который я использую для своей собственной разработки гемов, и до сих пор он работал очень хорошо.

ОБНОВЛЕНИЕ: Перечитывая ваш вопрос, похоже, ваш гем - это движок Rails.Я бы рекомендовал посмотреть на EngineX Хосе Валима.Это генератор, который создает гем с фиктивным приложением Rails для тестирования (https://github.com/josevalim/enginex). Если у вас уже много кода, http://keithschacht.com/creating-a-rails-3-engine-plugin-gem/ может помочь вам настроить фиктивное приложение для тестирования.

12 голосов
/ 04 июня 2016

Вы действительно можете сделать:

cd ~/my_gem_path & bundle console

И это будет быстрый тест:

My::Gem::VERSION

6 голосов
/ 20 декабря 2010

Вы можете ссылаться на камень локально , но если вы не хотите запускать bundle update каждый раз, когда вы меняете камень, вы можете просто требовать файлы, используя их полный путь или перемещая ( или символические ссылки) ваш драгоценный камень в /vendor.

Но, честно говоря, звучит так, будто вам нужно написать несколько тестов! ;) Проверка каждого внесенного вами изменения вручную станет утомительной и подверженной ошибкам. Если вы новичок в написании драгоценных камней, посмотрите на источник других популярных драгоценных камней и посмотрите, как они тестируются.

...