我想修改黄瓜,以便在执行给定功能时(比如“login.feature”),我只想为web步骤加载login_steps.rb。不应加载其他步骤文件。
IMO这对于采用相同的步骤非常有用,但在执行工作方面与正在执行的功能名称有所不同。
由于我有将近一百个场景,我更倾向于这些步骤是高级步骤,这是有道理的。
有什么想法吗?
答案 0 :(得分:1)
目前,实现这一目标的唯一方法(缺少修补黄瓜本身)是将每个功能放入一个单独的目录树中,该目录树具有自己的env.rb文件和step_definitions目录。
有关详细信息,请参阅邮件列表中的this post。
答案 1 :(得分:1)
您可以使用Cellophane gem来实现这样的目标。它支持嵌套的步骤定义,您可以关闭查找共享步骤。我不确定这会让你一直到达你想去的地方,但我发现如果可以修改玻璃纸以获得你想要的东西,那么开发人员会非常敏感。
答案 2 :(得分: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]
将执行相同的操作。即给定,何时,然后和而且是通用的。
<小时/> 此外,您可以阅读behat文档以便更好地理解 - http://behat.readthedocs.org/