2009-10-29 11 views
19

posso tipicamente testare un metodo di Test :: Unit regolare utilizzando la seguente sintassi di comando per un metodo "delete_user_test":Come eseguire un singolo test contesto shoulda in Ruby Test :: quadro Unità

ruby functional/user_controller_test.rb -n delete_user_test 

Ora, quando sto usando il plugin shoulda con test :: Unit cerco di usare la stessa tecnica come segue:

... 
context "Deleting a User" do 
    should "remove user from user table" do 
    ... 
    end 
end 

Poi cerco di eseguire il singolo test come segue:

ruby functional/user_controller_test.rb -n "test: Deleting a User should remove user from user table" 

Questo non funziona. Qualcuno sa come posso eseguire un singolo test di contesto usando shoulda e Test :: Unit. Ho un paio di test diversi in un file di test e voglio eseguire solo quello che usa TDD senza dover attendere l'esecuzione di tutti i test.

risposta

33

Questo funziona per me:

ruby functional/user_controller_test.rb -n "/Deleting a User/" 

Basta mettere un po 'ragionevolmente lunga stringa dal nome del contesto nell'espressione regolare.

+0

Fantastico! Ha funzionato! Grazie Milano. –

+7

non funziona con 'minitest' :( – asymmetric

+0

Wow impressionante super enorme grazie – Trip

4

utilizzando il nome completo del test con uno spazio alla fine sembra funzionare troppo:

ruby -Itest 
    functional/user_controller_test.rb 
    -n "test: Deleting a user should remove user from user table. " 
3

La combinazione dei due approcci ha funzionato bene per me; utilizzando sia -I test che l'espressione regolare.

ruby -Itest functional/user_controller_teset.rb -n "/remove user from user table/" 
Problemi correlati