我的项目中有两个Feature文件,其中一个步骤在这两个文件中很常见,但我需要调用两个不同的Step定义函数,具体取决于写入这些步骤的文件。
我们有任何配置吗?
答案 0 :(得分:0)
所以,如果我理解正确,你有一行黄瓜,需要执行两种不同的方法?据我所知,这是不可能的。黄瓜会继续告诉你有多个同名的方法。 - 这就是我从你的头衔中得到的。
我从你的解释中得到的是不同的东西。因此,您有2个具有共同步骤的功能文件。一个功能文件是从类文件A获取其步骤,而其他功能文件是从类文件B中获取其步骤?
在这种情况下,您可以最好地扩展您的公共类,以便您可以使用任何功能文件中任何类文件中的任何代码。
答案 1 :(得分:0)
我认为这是可能的唯一方法(但我不推荐)是定义一些变量来跟踪你正在运行的场景。例如,您可以为每个场景添加标签。
<script src="/path/to/externalScript.js"></script>
然后你可以创建一个跟踪
的钩子 @some_tag
Scenario: This is scenario 1
Given I do this thing
@some_other_tag
Scenario: This is scenario 2
Given I do this thing
然后从您的步骤中运行代码,具体取决于@this var。
的值Before('@some_tag') do
@this = "foo"
end
Before('@some_other_tag') do
@this = "bar"
end
但真的,毕竟......你应该有两个不同的步骤
Given(/^I do this thing$/) do
if @this.eql? "foo"
<do some code>
elsif @this.eql? "bar
<do something else>
else
<do other things>
end
和
Given I do this Foo Thing
这将有助于更好地描述测试实际在做什么。