跳过Python行为步骤

问题描述 投票:0回答:2

在行为(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):...

python python-behave
2个回答
0
投票

我认为没有

@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)。

它将使用为该设备标记的场景。


0
投票

您还可以编写一个测试行来调用另一个测试行,这样您就可以编写一个规则

@then("if my {condition} is {test} then {subtest}")

根据该测试定义执行测试,然后执行

    context.execute_steps("Then "+subtest)
else:
    print("Skipped step:", subtest)

至少现在您的支票仅存在于 1 个位置,并且不会应用于您并不总是需要它的规则中。

© www.soinside.com 2019 - 2024. All rights reserved.