2016-06-12 6 views
1

내 애플리케이션에는 httpsy 서비스를 사용하여 다른 웹 사이트에서 데이터를 가져 오는 일부 기능이 있습니다. 따라서 http 함수에 대한 테스트를 실행할 때 많은 시간이 필요합니다.rspec에서 테스트 그룹을 실행하십시오.

- spec 
-- services 
--- http_request 
---- test_http_a_spec.rb 
---- test_http_b_spec.rb 
--- component 
---- test_component_c_spec.rb 
---- test_component_d_spec.rb 
--- models 
---- test_model_e_spec.rb 

그래서 내가 어떻게 http_request 폴더에서 시험을 제외한 모든 시험에 대한 RSpec에 테스트를 실행할 수 있습니까? 감사합니다.

+2

다른 웹 사이트는 테스트하려는 시스템이 아닐 수 있습니다. [WebMock] (https://github.com/bblimke/webmock)을 사용하여 요청 및/또는 [VCR] (https://github.com/vcr/vcr)을 스텁하여 HTTP 트래픽을 기록하고 재생하도록 고려 했습니까? ? – Stefan

+0

저는 Ruby 녀석입니다 (자바 출신). 위에서 언급 한 두 라이브러리를 살펴 보겠습니다. 감사 ! 내가 RSpec에 실행하면 –

답변

3

rspec filtersrspec tags으로 http 테스트에 태그를 지정할 수 있습니다. 예를 들어

, spec/services/http_request/test_http_a_spec.rb에서 : 다음

describe WhatEver 
    describe 'Testing', http: true do 
    it 'should work' do 
     # ... 
    end 
    end 
end 

그리고, rspec --tag ~http으로 테스트를 실행합니다. 태그 http: true이있는 테스트는 실행되지 않습니다.

반면에 HTTP 테스트가 너무 오래 실행되는 경우 this article을 읽는 것이 좋습니다.

+0

는 보여 주었다 : 이 번들 간부가 이 zsh을 -t ~ HTTP RSpec에 : 그런 사용자 또는 지정된 디렉토리 : HTTP_REQUEST –

+0

RSpec에 코어 (3.4.4) 루비 "2.2.2" –

+0

@LeoLe이 관련이 ''zsh'. [이 GitHub 문제] (https://github.com/robbyrussell/oh-my-zsh/issues/3957)를 검토하십시오. 요약하면,'noglob rspec -t ~ http' 만 실행하면됩니다. – Wikiti

관련 문제