2013-08-29 4 views
1

RSpec 테스트 스위트에서 Spork and Guard를 사용하고 있습니다. 을 실행하는 바로 가기이 있는지 궁금 해요 $ rspec . --tag slowGuard : Guard의 콘솔에서 특정 태그를 실행하는 방법은 무엇입니까?

: 내가 가진 별도의 쉘에서 느린 테스트를 실행에 내가 필요로 할 때 그런

RSpec.configure do |config| 
    ... 
    config.filter_run_excluding slow: true 
    ... 
end 

: 나는 실행에서 느린 테스트를 제외하고있어 느린 태그 동일 가드가 테스트를 자동 실행하는 쉘?

콘솔 > 메시지가있다? 그리고 문서를보고 난 후에는>. rspec . --tag slow이 작동한다는 것을 알았지 만, 그것은 다른 쉘로 전환하는 것보다 좀 더 장황하다. 이것은 꽤 일반적인 요청 일 것 같습니다. 아이디어?

답변

1

이 코드는 우리가보고있는 파일 내부에 "빠른"태그 된 모든 테스트를 실행합니다.

guard 'rspec', :version => 2, :cli => "--tag ~fast" do 
# code for watching 
end 

필요한 테스트 만 실행하려면 cli 옵션을 사용해야합니다.

+0

때문에 (사람 태그'fast' 귀하의 예제에서) 그 테스트를 실행하려면 명령 줄 트리거 무엇인가? – Meltemi

+0

"- 태그 빠른"은 빠른 테스트 만 실행하는 것을 의미합니다. "--tag ~ fast"는 빠르지 않은 실행 테스트를 의미합니다. –

4

당신은 그룹을 정의하고 각 그룹의 다른 RSpec을 구성 할 수 있습니다.

/Guardfile의 내용에 아래의 코드를 추가합니다 :

scope group: :fast 

group :fast do 
    guard 'rspec', cli: '--tag ~slow' do 
    # code for watching 
    end 
end 

group :slow do 
    guard 'rspec', cli: '--tag slow' do 
    # code for watching 
    end 
end 

당신은 가드를 시작하면 빠른 사양 기본값 :

$ guard                           
21:56:35 - INFO - Guard::RSpec is running 
21:56:35 - INFO - Guard is now watching at '/Users/michi/testproject' 
[1] {Fast} guard(main)> 

모든 빠른 사양을 실행 Enter 키를 눌러 :

이제
22:02:00 - INFO - Run Fast 
22:02:00 - INFO - Running all specs 
Run options: exclude {:slow=>true} 

당신이,384을 눌러 바로 모든 느린 사람을 실행할 수 있습니다 79,984,213,210 : 또한 눌러 모두 느린 사양에 범위를 전환하고 실행할 수 있습니다

[2] {Fast} guard(main)> slow 
22:02:50 - INFO - Run Slow 
22:02:50 - INFO - Running all specs 
Run options: include {:slow=>true} 

입력 : 도움이

[3] {Fast} guard(main)> scope slow 
[4] {Slow} guard(main)> 
22:03:30 - INFO - Run Slow 
22:03:30 - INFO - Running all specs 
Run options: include {:slow=>true} 

희망!

+0

이것이 작동하는 경우 아직 구현할 기회가 없으면 정확히 찾고있는 것입니다. 고마워! – Meltemi

+0

물론 작동합니까, 위의 예제는 셸에서 실제 예제의 복사본입니다 :-) – Netzpirat