回答:
ドキュメントを見つけるのは簡単ではありませんが、例にハッシュのタグを付けることができます。例えば。
# 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でうまく機能します。
:focus
。これにより、「binding.pry ,
console.log」などの望ましくないものがコードベースに侵入することも防止されます。
rspec
プログラムの使用法と実際の振る舞いを説明するドキュメントの方法で私を指摘することができます:) Relish docはそうではないので。
--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
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
、プロジェクトのルートに。