使用标签在Rspec上运行特定测试 - Ruby Yagi

117 阅读1分钟

有时,当你在一个大型Rails应用上修改一个功能时,只运行与该功能相关的规格,而不是运行完整的测试规格(例如:1000多个功能规格,需要20分钟才能运行)会更快。

你可以使用标签来实现这一点,比如说我们想要标记一些与结账流程相关的测试案例,在/describe/context的第二个参数上使用标签":checkout":

# checkout_discount.spec
# ...
it 'should discount price when promo code applied', :checkout do
  # your test code here
end

你可以在不同的规范文件中使用相同的标签:

# checkout_referral.spec
# ...
describe 'referral code applied', :checkout do
  it 'should give bonus to referral account' do
  # your test code here ...
  end
end

现在你可以指定rspec只运行被标记为:checkout的测试,像这样。

rspec spec --tag checkout

这条命令意味着rspec将检查位于 "spec "文件夹内的测试文件,并且只运行带有'checkout'标签的块**(it**/describe/context)。你可以把这个标签名称改为你喜欢的任何名称。