特定のラベルを持つテストのみを実行する方法があると思います。誰か知ってる?
ドキュメントを見つけるのは簡単ではありませんが、ハッシュでサンプルにタグを付けることができます。例えば。
# 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
または、行番号を渡すことができます:rspec spec/my_spec.rb:75
-行番号は、単一の仕様またはcontext/describeブロックを指すことができます(そのブロック内のすべての仕様を実行します)
コロンを使用して複数の行番号をストリング化することもできます。
$ 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_methodhttp://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
が含まれていることを確認してください。
また、デフォルトで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
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
rspec spec/models/user_spec.rb -e "SomeContext won't run this"
として実行できます。