Как запустить единый контекстный тест shoulda в Ruby Test :: Unit framework

Обычно я могу протестировать обычный метод Test :: Unit, используя следующий синтаксис командной строки для метода «delete_user_test»:

ruby functional/user_controller_test.rb -n delete_user_test

Теперь, когда я использую плагин shoulda с Test :: Unit, я пытаюсь использовать ту же технику, а именно:

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

Затем я пытаюсь запустить одиночный тест следующим образом:

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

Это не работает. Кто-нибудь знает, как я могу запустить одиночные контекстные тесты с помощью shoulda и Test :: Unit. У меня есть несколько разных тестов в одном тестовом файле, и я хочу запустить только один с использованием TDD, не дожидаясь запуска всех тестов.


person Joe Dean    schedule 29.10.2009    source источник


Ответы (3)


Это работает для меня:

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

Просто вставьте достаточно длинную строку из вашего имени контекста в регулярное выражение.

person Milan Novota    schedule 29.10.2009
comment
Интересно, что использование / Deleting_a_User / будет работать до использования shoulda, но теперь вы можете и действительно должны использовать / Deleting a User / - person Magne; 28.03.2017

Использование полного имени теста с пробелом в конце, похоже, тоже работает:

ruby -Itest 
     functional/user_controller_test.rb 
     -n "test: Deleting a user should remove user from user table. "
person Shadwell    schedule 25.10.2010

У меня хорошо сработало сочетание этих двух подходов; используя как -I test, так и регулярное выражение.

ruby -Itest functional/user_controller_teset.rb -n "/remove user from user table/"
person Abel    schedule 09.12.2011