Как настроить guard для выполнения только тех тестов, которые имеют отношение к тому, что изменилось, и повторного запуска всего набора тестов? - PullRequest
0 голосов
/ 25 апреля 2020

После изучения «охраны» (я использую Gem версии 2.14.2) и прочтения этого https://www.chrisblunt.com/ruby-on-rails-running-tests-with-guard-and-docker/, мне любопытно, правильно ли я использую охрану с моим rspe c тесты. После запуска консоли охраны с помощью

bundle exec guard

я ищу способ, чтобы весь мой набор тестов rspe c не запускался, когда я редактировал только один файл. Можно ли настроить guard таким образом, чтобы он выполнял тесты только для конкретной спецпрограммы c? Например, если я отредактирую файл

lib/folder1/myclass.rb

и spe c file

spec/lib/folder1/myclass_spec.rb

Изменения в lib / folder1 / myclass.rb не приведут к тому, что весь набор тестов запустить, а точнее только спецификацию / lib / folder1 / myclass_spe c .rb или хотя бы только спецификации, зависящие от измененного класса?

1 Ответ

0 голосов
/ 01 мая 2020

Учитывая, что в моем Gemfile есть нужные гемы,

gem 'guard', '~> 2.16.2'
gem 'guard-rspec', '~> 4.7.3'

И у меня есть Guardfile на месте,

Тогда давайте скажем, что я хочу запускать только файл spec/policies/user_policy_spec.rb всякий раз, когда app/policies/user_policy.rb файл изменяется, затем я добавляю следующую защиту в мой Guardfile.

guard :rspec, cmd: "bundle exec rspec" do
  watch(%r{^app/policies/(.+)\.rb$})     { |m| "spec/policies/#{m[1]}_spec.rb" }
end
...