如何运行一个单一的testing在RSpec警卫?
我使用guard-rspec在我的文件发生变化时自动运行必要的rspectesting,我喜欢它的工作原理。 但是,当我用多个testingdebugging一个文件时,有时我只想要重新运行一个单独的testing。 例如,从命令行使用rspec:
rspec spec/requests/my_favorite_spec.rb:100
这将仅运行my_favorite_spec.rb
中第100行的单个规范。
我试着把上面的内容input到控制台,但是它只是运行了所有的testing,就像我刚刚按下input一样。 在控制台中是否有另一种语法来运行单个规范?
你必须引用spec/spec_helper.rb
文件来接受:focus => true
语句。
RSpec.configure do |config| config.filter_run :focus => true end
那么你可以使用
it 'does something', :focus => true do //your spec end
要么
describe "something", :focus => true do before do sign in visit page end it { does something } it { does something else } end
如果您打算采取这种方法,那么您可能还希望确保所有的规格在没有:focus => true
情况下运行,使用文档化的方法 :
RSpec.configure do |config| config.run_all_when_everything_filtered = true end
你可以用filter做很多事情。 你可能想看看这个网页: https : //relishapp.com/rspec/rspec-core/v/3-0/docs/filtering
我认为你可以为你想运行的规范添加“focus:true”选项
it 'does something', focus: true do //your spec end
那么你只保存文件和警卫运行只有那个重点testing
当你完成你只是删除“重点:真”
您可以在Guardfile中使用failed_mode: :focus
focus,如下所述: https : //github.com/guard/guard-rspec#list-of-available-options