2015-09-14 28 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