如何在ruby Test :: Unit框架中运行单个shoulda上下文测试

Joe*_*ean 19 ruby unit-testing ruby-on-rails shoulda

我通常可以使用以下命令行语法为方法"delete_user_test"测试常规的Test :: Unit方法:

ruby functional/user_controller_test.rb -n delete_user_test
Run Code Online (Sandbox Code Playgroud)

现在,当我使用带有Test :: Unit的shoulda插件时,我尝试使用如下相同的技术:

... 
context "Deleting a User" do
  should "remove user from user table" do
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)

然后我尝试按如下方式运行单个测试:

ruby functional/user_controller_test.rb -n "test: Deleting a User should remove user from user table"
Run Code Online (Sandbox Code Playgroud)

这不起作用.有谁知道如何使用shoulda和Test :: Unit运行单个上下文测试.我在一个测试文件中有几个不同的测试,我想只使用TDD运行一个,而不必等待所有测试运行.

Mil*_*ota 34

这对我有用:

ruby functional/user_controller_test.rb -n "/Deleting a User/"
Run Code Online (Sandbox Code Playgroud)

只需将您的上下文名称中的一些相当长的字符串放入正则表达式中.


Sha*_*ell 5

使用末尾有空格的测试全名似乎也有效:

ruby -Itest 
     functional/user_controller_test.rb 
     -n "test: Deleting a user should remove user from user table. "
Run Code Online (Sandbox Code Playgroud)