2012-07-31 99 views
1

現狀:過濾通過JBehave多metafilters

在我目前的項目,我們正在運行各種不同JBehave的故事。每個「.story」文件都與產品和流程相關。

實施例:
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

是的,這是可能的。 在API文檔,你會發現這樣的信息:

一個過濾器,通過它的字符串表示這是 解析和由MetaFilter.MetaMatcher匹配,以確定是否 元被允許或未被識別。

的MetaFilter.DefaultMetaMatcher解釋濾波器作爲序列的任何名稱 - 值屬性的 (由空格隔開),由「+」 列入和前綴「 - 」排除。例如:

MetaFilter filter = new MetaFilter(「+ author Mauro -theme smoke testing + map * API -skip」); filter.allow(new Meta(asList(「map someAPI」)));

使用MetaFilter.GroovyMetaMatcher由前綴 「groovy:」觸發,並允許過濾器被解釋爲Groovy 表達式。

濾機過濾器=新濾機( 「常規:(A == '11' |一個== '22') & & b == '33'」);

所以可能如果你玩的條件,你會得到你的運行配置定製。 試試這個例子:

mvn clean install -P -Djbehave.meta。過濾器= 「myCustomRunConf:(+產品& & +動作)」

更多信息大寫金額的API文檔的濾機類: http://jbehave.org/reference/stable/javadoc/core/org/jbehave/core/embedder/MetaFilter.html

+0

好的,我將不得不重試此操作,但在過去,我嘗試了過濾器「+產品電話+動作呼叫」,但它不起作用。 – HPacquee 2012-10-23 15:12:56

+0

@HPacquee我更新了答案,我想現在更準確。 – sfrj 2012-10-23 19:14:41

0

我想有你使用Groovy http://jbehave.org/reference/stable/meta-filtering.html

更容易的解決方案

你的情況,這將是 -Dmetafilter =「常規‘產品==‘手機’& &行動==‘呼叫’’

我想這是 「-Dmetafilter =常規:T2 & & T3」 此功能文件

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 

只有測試2的情況在這種情況下

0

執行如何:

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