guard + minitest を自動で動かせない
環境:
CentOS6.7
, ruby 2.2.2p95
, rails 4.2.4
CentOSはvagrant
経由で起動した、virtualbox
上の仮想ゲストOSです。
今まで使ったことのなかったguard
の実験をしています。
--Guardfile--
guard :minitest do
watch '/opt/rails/rails_app/app/views/static_pages/home.html.haml'
end
ファイルの指定は間違ってないように思います。
$ ls /opt/rails/rails_app/app/views/static_pages/
about.html.haml help.html.haml home.html.haml
中身はこれだけです。
$ cat /opt/rails/rails_app/app/views/static_pages/home.html.haml
= provide :title, 'home'
%h1 StaticPages#home
テストは次のように用意しました。
$ cat test/controllers/static_pages_controller_test.rb
require 'test_helper'
class StaticPagesControllerTest < ActionController::TestCase
def setup
@base_title = 'ROR tutorial'
end
test "should get home" do
get :home
assert_response :success
assert_select 'title', "home | #{@base_title}"
end
test "should get help" do
get :help
assert_response :success
assert_select 'title', "help | #{@base_title}"
end
test "should get about" do
get :about
assert_response :success
assert_select 'title', "about | #{@base_title}"
end
end
Gemfile
でのguard
に関する部分は次のとおりです。
$ cat Gemfile | grep guard
gem 'guard', group: :development
gem 'guard-minitest', group: :development
この後guard
を起動し、それ自体の起動は問題なさそうに見えました。
$ bundle exec guard -p
13:31:34 - INFO - Guard::Minitest 2.4.4 is running, with Minitest::Unit 5.8.2!
13:31:34 - INFO - Running: all tests
Run options: --seed 5814
# Running:
...
Finished in 1.391047s, 2.1566 runs/s, 4.3133 assertions/s.
3 runs, 6 assertions, 0 failures, 0 errors, 0 skips
13:32:00 - INFO - Guard is now watching at '/opt/rails/rails_app'
[1] guard(main)>
が、これ以降、app/views/static_pages/home.html.haml
を編集・保存しても全くguard
の挙動に動いた形跡が見られません。例えばわざとエラーが起きるような修正をしても何の反応もなく、手動でrake test
するときちんとエラーが返ってくるという状況です。
こちらを見て、guard -p
も試してみましたが、結果が変わりません。
そもそも共有フォルダもnfsも関係のない場所で処理しているので、最初から無関係だったようです。
Guardfile
の中身を少しでも書き換えるとguard
が自動再起動してテストの読み込み・実行を行うことは確認できたので、十中八九、Guardfile
の書き間違いなのだろうとは思うのですが、正規表現ではなくファイルを直接指定する書き方をしているつもりなので、これで動かないとなるとどういうことなのか混乱しています。
何かしらヒントをご存じの方がいらしたら、ご教示をお願いします。