Как вы запускаете один файл test / spec в RSpec? - PullRequest
260 голосов
/ 27 сентября 2008

Я хочу иметь возможность запускать тесты одного спецификационного файла & mdash; например, для одного файла, который я редактирую. rake spec выполняет все спецификации. Мой проект не является проектом Rails, поэтому rake spec:doc не работает.

Не знаю, имеет ли это значение, но вот моя структура каталогов.

./Rakefile
./lib
./lib/cushion.rb
./lib/cushion
./lib/cushion/doc.rb
./lib/cushion/db.rb
./spec
./spec/spec.opts
./spec/spec_helper.rb
./spec/db_spec.rb

Ответы [ 14 ]

4 голосов
/ 11 января 2009

specky.vim

3 голосов
/ 03 октября 2008

Либо посмотрите на автотест.

Запуск автотеста в командном окне будет означать, что файл спецификации будет выполняться всякий раз, когда вы сохраняете его. Кроме того, он будет запускаться всякий раз, когда запускается указанный вами файл.

Например, если у вас есть файл спецификации модели с именем person_spec.rb и файл модели, который он определяет, называется person.rb, то всякий раз, когда вы сохраняете любой из этих файлов из вашего редактора, файл спецификации будет выполняться.

2 голосов
/ 15 мая 2017

Хотя на этот вопрос было написано много хороших ответов, ни один из них не использует подход Rspec tags.

Я использую теги для запуска одной или нескольких спецификаций в разных файлах - только те, которые связаны с моей текущей задачей разработки.

Например, я добавляю тег «dev» со значением «current»:

it "creates an user", dev: :current do
  user = create(:user)
  expect(user.persisted?).to be_truthy
end

тогда я бегу

bundle exec rspec . --tag dev:current

Различные теги / значения могут быть установлены в отдельных спецификациях или группах.

2 голосов
/ 08 декабря 2014

Допустим, вы запускаете тест для создания задачи. Вы всегда можете запустить этот конкретный код спецификации todo, используя файл crete_spec.rb, как показано ниже.

      rspec/spec/features/controller/spec_file_name.rb

   Example:

   Creating  rspec spec/features/todos/create_spec.rb
   Editing   rspec spec/features/todos/edit_spec.rb
   Deleting  rspec spec/features/todos/destroy_spec.rb

Если вы хотите запустить все спецификации в одном коротком.

   rspec 

Если вы хотите запустить все спецификации в конкретном контроллере, то это.

  rspec/spec/feaures/controller_name

  Example:   rspec/spec/features/todos

Надеюсь, это даст вам больше понимания!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...