2012-10-13 3 views
5

Я явно что-то не так. Я пытаюсь написать и проверить простой рубин в одном файле. Я хочу, чтобы охранник наблюдал за файлом и тестовым файлом и запускал minitest при любом изменении файла.Использование guard-minitest в одном файле Ruby

Итак, два файла: game.rb и game_test.rb

game.rb

class Game 
end 

game_test.rb

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

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

У меня также есть Guardfile, который выглядит следующим образом:

notification :terminal_notifier 

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

Теперь, я возможно, что-то забыл, но я не могу для жизни понять, что это такое.

Если я начну охрану и нажмите Enter, произойдет «Запустить все», и тесты пройдут .. по крайней мере в большинстве случаев. Однако я должен нажать Enter, чтобы это произошло.

Кроме того, если я вношу изменения в файлы, ничего не происходит. Я пробовал помещать gem 'rb-fsevent' в Gemfile и работать с "bundle exec guard", но это тоже не помогает.

Любая помощь будет высоко оценена. Я схожу с ума.

Спасибо, Джереми

ответ

5

Ваш первый «часы» определение будет просто передать «game.rb», который не является тестовым файлом, поэтому он не будет работать. Второй «вахта» правильный, поэтому, когда вы сохраняете «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

Это странно, не стесняйтесь [сообщать о любых проблемах в guard-minitest] (https://github.com/guard/guard-minitest/issues/new) (также обязательно запустите Guard в режиме отладки, просто запустите он с флагом '--debug'). Кроме того, я советую вам вдохнуть вдохновение из шаблона Guardfile в Guard-minitest (https://github.com/guard/guard-minitest/blob/master/lib/guard/minitest/templates/Guardfile#L3-L5) , – rymai

Смежные вопросы