2015-09-14 58 views
0

我有一個具有特定標記的behat特徵,並且我有兩個beforeFeature函數。其中一個針對每個場景運行,其中一個只針對特定的標記場景運行。問題在於沒有標籤的beforeFeature也會在具有標籤的功能之前運行。我想讓beforeFeature不會在具有特定標籤的特徵上運行。 比如我有以下特點:如何排除befe中的特定標記之前的特徵

@taggedFeature 
Feature: This feature runs tagged beforeFeature 

,在我FeatureContect我有以下beforeFeature功能

/** @BeforeFeature */ 
public static function beforeFeatureDefault() 
{ 
// Do something 
} 

/** @BeforeFeature @taggedFeature*/ 
public static function beforeFeatureTagged() 
{ 
// Do something 
} 

我要的是從貝哈特是不在我的標記功能之前運行beforeFeatureDefault()函數。

+0

你標記功能或方案? – b263

+0

我之前在我的標記功能之前需要運行的功能之前標記了功能。但我想忽略默認的beforeFeature函數(我不想因爲忽略默認的beforeFeature而標記我的其他場景) – DrStein

回答

1

您可以排除與~的標記特點:

/** @BeforeFeature [email protected] */ 
public static function beforeFeatureDefault() { 
    echo 'beforeFeatureDefault()'; 
} 

/** @BeforeFeature @taggedFeature */ 
public static function beforeFeatureTagged() { 
    echo 'beforeFeatureTagged()'; 
} 
+0

我試過了。但沒有工作 – DrStein

+1

我用Behat 3.0.15測試了這個。這裏是完整的工作代碼:https://github.com/b263/demo-behat-tagged-hooks – b263

+0

我會檢查這一點,並分享你的結果。 – DrStein