2012-10-13 10 views
5

私は明らかに何か間違っています。私は単純なルビーを1つのファイルに書き込んでテストしようとしています。ガードにファイルとテストファイルを見て、ファイルが変更されたときにminitestを実行するようにしたい。単一のRubyファイルでguard-minitestを使用する

ので、二つのファイル:私はまた、このようになりますGuardfileを持って

require 'rubygems' 
require 'minitest/autorun' 
require './game' 

class GameTest < MiniTest::Unit::TestCase 
    def test_truth 
    assert true 
    end 
end 

game.rbとgame_test.rb

game.rb

class Game 
end 

game_test.rb:

notification :terminal_notifier 

guard 'minitest', test_folders: '.' do 
    watch('game.rb') 
    watch('game_test.rb') 
end 

今、私はおそらく何かを忘れていますが、私の人生はそれが何であるかを理解できません。

ガードを開始してEnterキーを押すと、「すべて実行」が実行され、テストは少なくともほとんどの場合実行されます。しかし、それが起きるにはEnterキーを押す必要があります。

また、ファイルを変更しても何も起こりません。私はgemfileにgem 'rb-fsevent'を入れて "bundle exec guard"を実行しようとしましたが、どちらも役に立たないようです。

ご協力いただければ幸いです。私はナッツに行くよ。

おかげで、 ジェレミー

答えて

5

あなたの最初の定義は、単にそれが実行されませんので、テストファイルがされていない、「game.rb」を渡します「腕時計」。 2回目の「時計」は正しいので、「game_test.rb」を保存するとテストが実行されます。

これは、より正確Guardfileする必要があります:だから

notification :terminal_notifier 

guard 'minitest', test_folders: '.' do 
    watch('game.rb') { 'game_test.rb' } 
    watch('game_test.rb') 
end 
+2

、私はそれを試してみましたが、運がなかったです。私が働くことができる唯一のものは、( 'game.rb'){'./game_test.rb'}の中に相対ディレクトリがあることを見ることでした。なぜ私は本当に理解していない。何かご意見は? –

+1

それがどんな慰めであれ、私は同じ問題を抱えています。私は両方のファイルに対して同じことをしなければなりませんでした(watch( 'game.rb'){'./game_test.rb'}; watch( 'game_test.rb'){'./game_test.rb'}} '。 –

+0

それは変だけど、気をつけて(ガードミニストに問題を報告してください)(https://github.com/guard/guard-minitest/issues/new)(Guardをデバッグモードで起動してください。それは '--debug'フラグ付きです)。また、[guard-minitestのGuardfileテンプレート](https://github.com/guard/guard-minitest/blob/master/lib/guard/minitest/templates/Guardfile#L3-L5)からインスピレーションを得ることをお勧めします。 。 – rymai

関連する問題