【发布时间】:2016-09-21 11:17:34
【问题描述】:
我正在使用 Behave 运行我的 python 测试
我想要做的是在不同的步骤文件中实现相同的步骤,例如“UserA 调用 UserB”,并将测试指向正确的步骤教导时间。
例如:
.feature 文件内容:
Scenario: User A calls User B
Given UserA calls UserB
然后,在 step 文件夹中,我将有一个 .py 文件,其中包含:
@given('UserA calls UserB')
def step_impl(context):
print('A call is being made')
另一个步骤 .py 文件将包含:
@given('UserA calls UserB')
def step_impl(context):
print('A call is being made in another method')
我想控制将执行这些步骤中的哪一个。 有没有一种干净的方法可以做到这一点?
【问题讨论】:
-
你能举一个mcve的例子吗?
-
@NathanMcCoy 我添加了一个简单的例子来解释我想要做什么
-
它的结构很好,所以你不会混淆。你为什么要这个?有什么不同? a)重写您的步骤,以便它可以在两种情况下以正确的方式执行调用。或 b) 更改步骤名称,因为它确实是不同的步骤。
-
你可以使用标签。例如,当场景被标记为
@UI时,该步骤可以使用 selenium 来运行 UI,但是当它被标记为@Integration时,它可以在较低级别上运行,从而避开 UI。