2010-10-22 33 views
3

我想修改黄瓜,以便当一个给定的功能正在执行(说“login.feature”)我只想要加载login_steps.rb网页步骤。其他步骤文件不应加载。如何使黄瓜的步骤定义根据正在执行的功能文件加载

IMO这将是非常有用的具有相同的步骤,但实施工作相应地从正在执行的功能的名称不同。

由于我有几乎100个场景,我宁愿如果步骤是高层次的步骤,这是有道理的。

任何想法?

回答

1

当前,要做到这一点的唯一方法(短修补黄瓜本身)是把每个功能到一个单独的目录树中有自己的env.rb文件和目录step_definitions。

请参阅邮件列表上的this post了解更多详情。

1

您可以使用Cellophane宝石来实现类似的效果。它支持嵌套的步骤定义,您可以关闭查找共享步骤。我不确定这会让你一路走到你想要的地方,但是我发现如果玻璃纸可以被修改以获得你想要的东西,那么开发者会非常敏感。

0

这是给你的示例代码,

.feature文件

Scenario: Some description of the scenario 
Given [some context] 
When [some event] 
Then [outcome] 

.RB(红宝石步骤定义)

Given /^[some context]$/ do 
// code module 
// code module 
end 
  • 这一步定义将执行每当[some context]来在功能文件中。

说,

Given [some context] 
When [some context] 
Then [some context] 
And [some context] 

将在相同的操作来进行。即给定,当,然后和和是通用的。


此外,您还可以阅读贝哈特文件为了更好地理解 - http://behat.readthedocs.org/

相关问题