2013-02-22 149 views
12

有没有一种方法可以为Cucumber中的所有场景定义清理步骤?我知道Background用于定义每个场景后面的设置步骤,但是有没有办法在每个场景结束时定义类似的情况?黄瓜场景的清理步骤

回答

9

您可以使用hook后,将每个场景后运行:

After do 
    ## teardown code 
end 

还有一个挂钩之前,将允许您设置前的情景状态和/或测试数据:

Before do 
    ## setup code 
end 

前后钩提供的setupteardown功能从Test::Unit,他们一般都在hooks.rbfeatures/support目录。

13

还应该注意到,“之前”和“之后”是全局钩子,即那些钩子是为每一个场景在功能运行文件

如果你想在安装和拆卸,为只有几测试用例运行(分组通过标签),那么你需要使用taggedHooks,在句法是

Before('@cucumis, @sativus') do 
# This will only run before scenarios tagged 
# with @cucumis OR @sativus. 
end 


AfterStep('@cucumis', '@sativus') do 
# This will only run after steps within scenarios tagged 
# with @cucumis AND @sativus. 
end 

欲了解更多信息:https://github.com/cucumber/cucumber/wiki/Hooks