Как загрузить spec_helper.rb автоматически в RSpec 2
При разработке драгоценных камней в Ruby мне почти всегда нужен файл, в котором я могу настроить RSpec на мои нужды, и, возможно, прежде чем это сделать, потребуются некоторые вспомогательные модули, которые должны быть доступны во всех моих примерах spec
.
В приложениях Rails для этого используется файл с именем spec/spec_helper.rb
. Меня раздражает то, что в типичной среде Rails вам нужно потребовать этот файл spec_helper.rb в каждом файле, который содержит примеры для его загрузки. Раньше у меня было много проблем с этим, связанным с изменением путей загрузки и относительных требований в файлах примеров.
Теперь для моих драгоценных камней я хотел бы попросить RSpec потребовать файл spec_helper.rb перед загрузкой любого из файлов примеров. Независимо от факта, если я вызываю исполняемый файл rspec или задание rake spec, которое я могу определить в моем Rakefile.
Я знаю, что могу сказать RSpec только расположение моего spec_helper.rb, это spec_helper.rb требует всех файлов примеров вручную, но я также хотел бы избежать дополнительного обслуживания этого подхода.
Есть ли лучший способ сделать это?
Ответы
Ответ 1
В RSpec 2 папка /spec
всегда автоматически находится на пути загрузки. Это означает, что все, что вам нужно, это:
require 'spec_helper'
в верхней части ваших файлов спецификаций. Это всегда будет загружаться /spec/spec_helper.rb
, и это минимум, с которым вы сможете уйти.
Это означает, что вам не нужен такой ужасный подход, как:
require File.join(File.dirname(File.dirname(__FILE__)), 'spec_helper.rb')
(который необходимо обновить для разных уровней вложенности).
Также вы можете добавить в свой .rspec
файл параметр: --require spec_helper
, который потребует этот файл в каждом spec файле, без инструкции для инструкции вверху.
Ответ 2
Строка --require spec_helper
автоматически добавляется в файл .rspec для RSpec 3.0, когда вы выполняете rspec --init
.