guard gem不看文件更改
我在用:
- 铁轨5.1.5
- 后卫2.14.2
- linuxmint
昨天我安装了后卫,插件是livereload和minitest 。
我使用guard来自动化测试并确保没有任何错误被破坏。
我发现由于某种原因,后卫没有对文件更改做出反应。 当它首次启动时,它运行所有测试,给我一个提示,我必须在提示中按Enter键,然后,它再次开始进行所有测试 ,每轮大约需要1小时。
谷歌搜索并尝试我发现的一切后,似乎没有任何工作。 所以,我冷静下来,决定和守卫一起玩。
发现并解决了问题。
问题:警卫不会对文件更改做出反应(正在观察)
原因: Guardfile中使用的正则表达式似乎与rails 5.1.5文件路径不兼容
解:
guard :minitest do watch(%r{^app/views/(.+)_mailer/.+}) { |m| "test/mailers/#{m[1]}_mailer_test.rb" } watch(%r{^test/.+_test\.rb$}) watch(%r{^test/test_helper\.rb$}) { 'test' } watch(%r{^app/controllers/(.*)\.rb$}) { |m| "test/functional/#{m[1]}_test.rb" } watch(%r{^app/controllers/(.*)\.rb$}) { |m| "test/controllers/#{m[1]}_test.rb" } watch(%r{^app/controllers/(.*)\.rb$}) { |m| "test/integration/#{m[1]}_test.rb" } watch(%r{^app/helpers/(.*)\.rb$}) { |m| "test/helpers/#{m[1]}_test.rb" } watch(%r{^app/mailers/(.*)\.rb$}) { |m| "test/mailers/#{m[1]}_test.rb" } watch(%r{^app/models/(.*)\.rb$}) { |m| "test/models/#{m[1]}_test.rb" } watch(%r{^app/veiws/(.*)\.rb$}) { |m| "test/system/#{m[1]}_test.rb" } end
我希望这对你有用。
我只是很好地调整了正则表达式。 他们来了:
guard :minitest do watch(%r{test\/.+\.rb}) watch(%r{app\/controllers\/(.*)\.rb}) { |m| "test/controllers/#{m[1]}_test.rb" } watch(%r{app\/controllers\/(.*)\.rb}) { |m| "test/integration/#{m[1]}_test.rb" } watch(%r{app\/helpers\/(.*)\.rb}) { |m| "test/helpers/#{m[1]}_test.rb" } watch(%r{app\/models\/(.*)\.rb}) { |m| "test/models/#{m[1]}_test.rb" } watch(%r{app\/mailers\/(.*)\.rb}) { |m| "test/mailers/#{m[1]}_test.rb" } watch(%r{app\/views\/(.*)\/.*\.html\.haml}) { |m| "test/system/#{m[1]}_test.rb" } watch(%r{app\/views\/(.*)\/.*\.coffee}) { |m| "test/system/#{m[1]}_test.rb" } end