2012-10-13 130 views
5

Claramente estoy haciendo algo mal. Estoy tratando de escribir y probar ruby ​​simple en un solo archivo. Quiero que el guardia mire el archivo y el archivo de prueba y ejecute minitest en cualquier momento en que el archivo cambie.Uso de guard-minitest en un solo archivo Ruby

Así, dos archivos: game.rb y 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 

También tengo una Guardfile que tiene este aspecto:

notification :terminal_notifier 

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

Ahora, estoy Probablemente olvidando algo, pero no puedo por mi propia vida descubrir qué es.

Si comienzo guardia y presiono Enter, ocurre "Ejecutar todo" y las pruebas se ejecutan ... al menos la mayor parte del tiempo. Sin embargo, tengo que presionar Enter para que suceda.

Además, si realizo un cambio en los archivos, no ocurre nada. Intenté poner gem 'rb-fsevent' en un Gemfile y ejecutar con "bundle exec guard", pero eso tampoco parece ser de ayuda.

Cualquier ayuda sería muy apreciada. Me estoy volviendo loco.

Gracias, Jeremy

Respuesta

5

Su primer "reloj" definición simplemente pasará "game.rb", que no es un archivo de prueba por lo que no se ejecutará. El segundo "reloj" es correcto, así que cuando guarde "game_test.rb", las pruebas deberían ejecutarse.

Esto debería ser una Guardfile más correcto:

notification :terminal_notifier 

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

tanto, he intentado eso y no tuvo suerte. Lo único que pude hacer fue ver ('game.rb') {'./game_test.rb'} con el directorio relativo allí. Realmente no entiendo por qué. ¿Alguna idea? –

+1

Si te sirve de consuelo, tengo el mismo problema. Tuve que hacer lo mismo para ambos archivos (el equivalente de 'watch ('game.rb') {'./game_test.rb'}; watch ('game_test.rb') {'./game_test.rb')} '. –

+0

Eso es raro, no dude en [informar cualquier problema a guard-minitest] (https://github.com/guard/guard-minitest/issues/new) (también asegúrese de ejecutar Guard en modo de depuración, simplemente comience con el indicador '--debug'). Además, te aconsejo que te inspires en la [plantilla Guardfile de guard-minitest] (https://github.com/guard/guard-minitest/blob/master/lib/guard/minitest/templates/Guardfile#L3-L5) . – rymai

Cuestiones relacionadas