在行为(Python)的执行场景中是否有任何选项可以跳过步骤。我有以下情况:
Scenario: Opening and closing driver by clicking and sliding
When swipe right
Then drawer should appear
When swipe left
Then drawer should disappear
Given part is for Android # now only Android executes, iOS not
When click hamburger
Then drawer should appear
When click outside drawer
Then drawer should disappear
现在我有一些与上下文一起传递的变量,并且我在每个步骤之前检查tit是否为真:
@when('swipe right')
def step_slide_right(context):
dc = context.device_commands
if dc.check_if_this_is_the_platform(context.run_test_for):
dc.slide_right()
是否有任何函数可以像
before_step(context,step)
一样在skip_step
内部跳过,而不是在每一步中调用if dc.check_if_this_is_the_platform(context.run_test_for):...
。
我认为没有
@skip_if
的步骤,但据我所知,1.2.5 中添加了一个可能适合您的目的的功能。您将概述两个场景,并将它们标记为 @use.with_os=Android
和 @use.with_os=iOS
(请参阅活动标记逻辑)。
@use.with_os=Android
Scenario: Opening and closing driver by clicking and sliding
When swipe right
Then drawer should appear
When swipe left
Then drawer should disappear
Given part is for Android # now only Android executes, iOS not
When click hamburger
Then drawer should appear
When click outside drawer
Then drawer should disappear
@use.with_os=iOS
Scenario: Opening and closing driver by clicking and sliding
When swipe right
Then drawer should appear
When swipe left
Then drawer should disappear
然后在运行命令中包含
-D os=Android
或 -D os=iOS
(请参阅 userdata)。
它将使用为该设备标记的场景。
您还可以编写一个测试行来调用另一个测试行,这样您就可以编写一个规则
@then("if my {condition} is {test} then {subtest}")
根据该测试定义执行测试,然后执行
context.execute_steps("Then "+subtest)
else:
print("Skipped step:", subtest)
至少现在您的支票仅存在于 1 个位置,并且不会应用于您并不总是需要它的规则中。