2012-07-31 6 views
1

상황 : 내 현재 프로젝트에서필터링

우리가 다른 JBehave의 이야기의 모든 종류를 실행하고 있습니다. 모든 "스토리"파일은 제품 및 흐름과 관련이 있습니다.

예 :
XYZ - 휴대폰 - call.story은 휴대폰과 phonecall를을 설명하는 이야기 일 것이다.
xyz-phone-call.story는 유선 전화로 전화를 작성하는 이야기입니다.
xyz-cellphone-browse.story는 휴대 전화로 인터넷을 탐색하는 이야기입니다.

내 질문에 답변 : Jbehave에서 메타 태그를 기반으로하는 이야기를 필터링 할 수있는 metaFilters를 추가 할 수 있습니다. 태그가 @product & @action이라고 가정합니다. (@ product 핸드폰, @action 호출).
휴대폰 & 핸드폰 스토리에 관한 JBehave 스토리를 실행하는 필터를 전달할 수 있습니까? 그렇다면 구문은 무엇입니까?

나는 다음과 같은 필터 (이 작업 없음) 추가 시도했다 : 행동에 대한

+product cellphone +product phone 
+product cellphone|phone 
+product cellphone,phone 

동일합니다.

여러 메타 태그를 필터링 할 수 있습니까?

답변

1

예 가능합니다.

필터 고유 구문 분석 메타 허용 여부 것인지를 결정하기 위하여 MetaFilter.MetaMatcher 일치 자사의 String 표현으로 식별됩니다 : 당신은이 정보를 찾을 수 API 문서에서 .

는 MetaFilter.DefaultMetaMatcher를 포함하고는 "+" 접두사 시퀀스 (공백으로 구분) 임의의 이름 - 값 특성 같은 필터를 해석 "-"제외 할. 예 :

MetaFilter filter = new MetaFilter ("+ 저작자 마우로 (Mauro -theme smoke) 테스트 + map * API -skip"); filter.allow (새 메타 (asList ("map someAPI")));

MetaFilter.GroovyMetaMatcher의 사용은 접두사 "groovy :"에 의해 트리거되고 필터가 Groovy 표현으로 해석되도록합니다.

MetaFilter 필터 = 새로운 MetaFilter ("멋 (A == '11'하기 | == '22') & & B == '33'");

따라서 조건을 가지고 게임 할 경우 실행 구성을 사용자 정의 할 수 있습니다. 다음 예를 시도해보십시오.

mvn clean install -P -Djbehave.meta.필터 = "myCustomRunConf : (+ 제품 & & + 행동)"

자세한 정보는 API 문서에 MetaFilter 클래스를 amout : http://jbehave.org/reference/stable/javadoc/core/org/jbehave/core/embedder/MetaFilter.html

+0

좋아, 다시 시도해야하지만 과거에는 필터 + 제품 전화 + 액션 호출을 시도했지만 작동하지 않았습니다. – HPacquee

+0

@HPacquee 답변을 업데이트했으며, 이제는 더 정확하다고 생각합니다. – sfrj

0

를 당신이 끝내 http://jbehave.org/reference/stable/meta-filtering.html

를 사용하여 쉽게 해결책이 추측 귀하의 경우에는

는 -Dmetafilter = "당연"이 될 것입니다 제품 == '휴대 전화'& & 행동 == "

을 '전화'

나는 그것을 시도 :

Meta: 
    @t1 

Narrative: 
    As a user 
    I want to blah-blah-blah 


Scenario: test 1 
Meta: 
    @t2 

Given I am on home page 


Scenario: test 2 
Meta: 
    @t2 
    @t3 

Given I am on home page 


Scenario: test 3 
Meta: 
    @t3 

Given I am on home page 

만 시험이 시나리오는이 경우

0

에서 실행되는이 기능은 파일의 "-Dmetafilter = 그루비 T2 & & T3"어때 :

mvn clean install -P -Djbehave.meta.filter = "+product cellphone&&phone"