我如何在Rspec中只运行特定的测试?
我认为有一种方法可以只运行给定标签的测试。 有人知道吗?
找到文档并不容易,但可以使用散列标记示例。 例如。
# spec/my_spec.rb
describe SomeContext do
it "won't run this" do
raise "never reached"
end
it "will run this", :focus => true do
1.should == 1
end
end
$ rspec --tag focus spec/my_spec.rb
更多关于GitHub的信息。 (任何人都有更好的链接,请指教)
(更新)
RSpec现在在这里被详细记录。 有关详细信息,请参阅--tag选项部分。
从v2.6开始,通过包含配置选项treat_symbols_as_metadata_keys_with_true_values
,可以更简单地表达此类标签,该选项允许您执行以下操作:
describe "Awesome feature", :awesome do
其中:awesome
被视为如下:awesome => true
。
关于如何配置RSpec以自动运行“集中”测试,请参阅此答案。 这对Guard来说效果特别好。
您可以使用--example(或-e)选项运行包含特定字符串的所有测试:
rspec spec/models/user_spec.rb -e "User is admin"
我最喜欢那个。
在你的spec_helper.rb中:
RSpec.configure do |config|
config.filter_run focus: true
config.run_all_when_everything_filtered = true
end
然后在你的规格上:
it 'can do so and so', focus: true do
# This is the only test that will run
end
你也可以用'fit'来关注测试,或者用'xit'来排除测试,如下所示:
fit 'can do so and so' do
# This is the only test that will run
end
链接地址: http://www.djcxy.com/p/59297.html