답변:
문서를 찾기는 쉽지 않지만 해시로 예제에 태그를 지정할 수 있습니다. 예 :
# 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
프로그램 의 사용법과 실제 행동을 설명하는 문서 방식으로 나를 가리킬 수 있습니다 .
--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에 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
있는 경우 항상 포함됩니다 .