Python 行为的动态场景调度程序

Dynamic scenario dispatcher for Python Behave

我是 运行 多个场景,并且想要合并某种动态场景调度程序,这将允许我在基于执行的场景完成测试后执行特定步骤。当我使用 PHPUnit 时,我曾经能够子 class TestCase class 并添加我自己的设置和拆卸方法。对于 behave,我一直在做的是在场景结束时添加一个额外的 "Then" 步骤,一旦场景完成清理一切就会执行 - 清理场景所做的配置更改等。但是因为每个场景都不同,我需要进行的配置更改是特定于场景的,所以我不能使用 environment.py 文件中的 after_scenario 挂钩。关于如何实现类似的东西的任何想法?

after_scenario 将两个场景都传递给函数。然后,您可以根据场景名称或其任何标签进行调度。例如,使用标签,您可以将场景定义为

@clean_up
Scenario: Something
    ...

你的听众是

def after_scenario(context, scenario):
    if 'clean_up' in scenario.tags:
        ...
    elif 'clean_down' in scenario.tags:
        ...

我一直在做的事情可能会给你一个想法:

在before_all上下文中指定一个列表(例如context.teardown_items=[])。

然后在各种场景的各个步骤中添加到该列表(帐户、订单或其他)

然后在 after_all 我以超级用户身份登录并清理我在该列表中指定的所有内容。

类似的东西对你有用吗?