【发布时间】:2019-09-19 02:34:15
【问题描述】:
我有一个 Rails API,所以所有控制器都位于 app/controllers/api/v1/ 中,当我保存控制器文件时,测试文件不会运行。
例如,我在spec/requests/api/v1/images_controller_spec.rb 中有一个文件app/controllers/api/v1/images_controller.rb 和一个测试文件。
当我保存控制器文件时,测试文件没有运行,但是当我保存测试文件时,测试文件运行。
这是我的 Guardfile
clearing :on
guard :rspec, cmd: 'bundle exec rspec' do
require 'guard/rspec/dsl'
dsl = Guard::RSpec::Dsl.new(self)
# Feel free to open issues for suggestions and improvements
# RSpec files
rspec = dsl.rspec
watch(rspec.spec_helper) { rspec.spec_dir }
watch(rspec.spec_support) { rspec.spec_dir }
watch(rspec.spec_files)
# Ruby files
ruby = dsl.ruby
dsl.watch_spec_files_for(ruby.lib_files)
# Rails files
rails = dsl.rails(view_extensions: %w[erb haml slim])
dsl.watch_spec_files_for(rails.app_files)
dsl.watch_spec_files_for(rails.views)
watch(rails.controllers) do |m|
[
rspec.spec.call("routing/#{m[1]}_routing"),
rspec.spec.call("controllers/#{m[1]}_controller"),
rspec.spec.call("acceptance/#{m[1]}")
]
end
# Rails config changes
watch(rails.spec_helper) { rspec.spec_dir }
watch(rails.routes) { "#{rspec.spec_dir}/routing" }
watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
end
感谢您的帮助,因为我不明白这一切是如何运作的。谢谢。
【问题讨论】:
标签: guard