2017-11-22 9 views
0

Ruby에서 시나리오의 태그를 단계 정의로 가져 오는 방법은 무엇입니까? 에 당신을 허용하는 특정 태그를 실행하도록 설정할 수 있습니다시나리오에서 단계 정의에서 @tag를 얻는 방법은 무엇입니까? - Ruby

And(/^When I execute any scenario$/) do |page| 
    How to get tag = @TAGS in step definition.. 
end 
+1

왜이 작업을 원하십니까? 태그의 목적은 테스트의 단계 동작을 결정하지 않고 실행할 테스트를 선택하는 것입니다. –

+0

특정 태그와 함께 테스트 * 주변 * 테스트를 정의하면 도움이됩니다. 다른 로깅 또는 "빠르다"라면 태그가있는 후크를 사용하는 것이 좋습니다. https://github.com/cucumber/cucumber/wiki/Hooks#tagged-hooks –

+0

@TomLord 어떤 조건을 수행하려면 태그가 필요합니다. –

답변

1

아니 직접 솔루션 있지만, 후크 (전, 후, 애프터 등) :

**@TAGS** 
Scenario: Showing information of the scenario 
When I execute any scenario 

지금 내 단계 정의는 이것이다 시나리오에 액세스 할 수있는 인스턴스 변수를 설정

Before('@my_tag') do # will only run if the test has @my_tag tag 
    @my_tag = true # This instance variable will be accessible in the test 
end 

또한 Before 후크가 그들에게 전달 된 시나리오를 얻을 수 있다는 사실을 사용하여에 인스턴스 변수를 설정하는 것을 사용할 수 있습니다 태그 이름

Before do |scenario| 
    @tags = scenario.source_tag_names # @tags instance variable accessible in test 
end