2016-12-08 2 views
1

테스트를 실행하고 CLI를 구축하기 위해 rspec (3.5)을 사용하고 있습니다. 현재 레이크를 고려 중입니다. 내 CLI에서 내 사양 폴더에서 사용할 수있는 모든 태그를 찾아서 RSPEC 실행 전 테스트로 실행하는 옵션으로 제공 할 수 있기를 바랍니다.테스트를 실행하기 전에 Rspec의 모든 태그를 찾으십시오.

나는 spec_helper를 살펴보고 태그 정보를 찾을 수 없었습니다. 필자는 rspec CLI 자체가 모든 태그를 입력으로 받아들이고, 모든 파일을 검토하여 각각의 태그가 일치하는지 확인합니다. 일치하면 rspec이이를 실행합니다.

나는이 워크 플로를 반대하고 싶습니다 -

  1. 내 사양 폴더에있는 모든 태그를 찾습니다.
  2. rake cli에서 옵션으로 제공하십시오.
  3. 사용자가 태그를 선택하여 실행하도록 허용합니다.

바로 지금 1 단계에서 모든 태그를 찾아야합니다. 테스트를 실행하지 않고 모든 사양 폴더를 스캔하고 어딘가에 태그를 노출하려면 어떻게해야합니까?

샘플 내 코드에서 발췌. ": api"는 제가 언급 한 태그입니다. 당신은 RSpec에 문서에 나와있는 해시 로켓 구문을 다음과 같은 경우

describe 'Oh Title: Oh after title', :api, :data_key => "Oh my meta_data", :feature => "Oh my feature" do 
    it 'oh my explanation' :data_key=> 'oh my meta_data' do |e| 
    #blah blah# 
    end 
end 
+0

를 인쇄합니다 ? – Brian

+0

태그는 spec 예제 또는 it 문을 그룹화하는 데 사용되므로 rspec CLI에서이를 호출하여 실행할 수 있습니다. 사양에 태그를 지정하면 다음과 같이 실행할 수 있습니다. 'rspec file_path --tag : suite1, : suite2' 자세한 내용은 설명서를 참조하십시오. https://www.relishapp.com/rspec/rspec-core/v/2-4/docs/command-line/tag-option –

+0

고마워! 나는 전에 rspec의 그 기능을 사용 해본 적이 없다. 아래의 모든 태그를 추출 할 수있는 방법으로 찔러 보겠습니다. – Brian

답변

0

, 이런 식으로 뭔가가 작동하지 않을 수 있습니다 :

grep -ri "it \"" * | grep "=>" | awk -F'=>' '{print $1}' | awk '{print $NF}' | uniq

하면 무너 뜨 :

  • grep -ri "it \"" *합니다 it "
  • grep "=>" wil을 포함하는 모든 줄을 추출하십시오. 단지 태그 테스트
  • awk -F'=>' '{print $1}'에 리터 필터가 바로 태그를 추출합니다 해시 로켓
  • awk '{print $NF}' 전에 모든 것을 추출합니다
  • uniq 만이 "태그"가 무슨 뜻 이죠 고유의 태그
+0

OS 대안 대신 루비 방법을 찾고 있습니다. 사실, 나는이 코드를 작성하면서 Windows에서 실행됩니다. 문자열로 구문 분석한다는 측면에서 보면 솔루션이 흥미 롭습니다. 우아한 방법으로 루비 코드를 파싱하는 방법이 있다면 더 많은 정보를 포함하도록 내 질문을 업데이트했습니다. –

+0

자신 만의 파서를 작성하는 것보다는 텍스트 검색이 최선의 선택이라고 생각합니다. Cygwin (https://www.cygwin.com/)을 사용하여 Windows에서 언급 한 모든 도구를 설치할 수 있습니다. – Brian

관련 문제