Answers:
查找文档并不容易,但是您可以使用哈希标记示例。例如。
# 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开始,通过包含configuration选项treat_symbols_as_metadata_keys_with_true_values
,可以更加简单地表示这种标签,该标签允许您执行以下操作:
describe "Awesome feature", :awesome do
:awesome
好像在哪里:awesome => true
。
:focus
,这也防止了诸如“ binding.pry ,
console.log ”之类的不受欢迎的东西进入代码库。
rspec
程序的用法和实际行为的文档方式:)因为Relish文档没有。
在您的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
config.filter_run_when_matching
确实可以通过添加:focus
示例来起作用
您还可以将多个行号与冒号一起输入:
$ rspec ./spec/models/company_spec.rb:81:82:83:103
输出:
Run options: include {:locations=>{"./spec/models/company_spec.rb"=>[81, 82, 83, 103]}}
作为RSpec的2.4(我猜),你可以在前面加上一个f
或x
至it
,specify
,describe
和context
:
fit 'run only this example' do ... end
xit 'do not run this example' do ... end
http://rdoc.info/github/rspec/rspec-core/RSpec/Core/ExampleGroup#fit-class_method http://rdoc.info/github/rspec/rspec-core/RSpec/Core/ExampleGroup#xit-class_method
一定要具有config.filter_run focus: true
与config.run_all_when_everything_filtered = true
中spec_helper.rb
。
在较新版本的RSpec中,配置支持更加容易fit
:
# spec_helper.rb
# PREFERRED
RSpec.configure do |c|
c.filter_run_when_matching :focus
end
# DEPRECATED
RSpec.configure do |c|
c.filter_run focus: true
c.run_all_when_everything_filtered = true
end
看到:
https://relishapp.com/rspec/rspec-core/docs/filtering/filter-run-when-matching
https://relishapp.com/rspec/rspec-core/v/3-7/docs/configuration/run-all-when-everything-filtered
您也可以运行focus: true
默认情况下具有的规范
spec / spec_helper.rb
RSpec.configure do |c|
c.filter_run focus: true
c.run_all_when_everything_filtered = true
end
然后简单地运行
$ rspec
而且只会进行重点测试
然后,当您删除 focus: true
所有测试再次运行
详细信息:https : //www.relishapp.com/rspec/rspec-core/v/2-6/docs/filtering/inclusion-filters
spec/spec_helper.rb
总是包括在内呢?还是仅当没有给出选项时?为什么测试模块具有require 'spec_helber'
,而没有上述代码,则通过指定文件消除了运行单个测试的可能性?我找不到与此有关的任何文档。
spec_helper.rb
如果您在项目根目录--require spec_helper
中.rspec
,则始终包含在内。
您可以运行为rspec spec/models/user_spec.rb -e "SomeContext won't run this"
。