0

我正在运行多个场景,并希望合并某种动态场景调度程序,这将允许我在基于执行的场景完成测试后执行特定的步骤。当我使用 PHPUnit 时,我曾经能够继承 TestCase 类并添加我自己的设置和拆卸方法。对于表现,我一直在做的是在场景结束时添加一个额外的“然后”步骤,一旦场景完成清理所有内容,就会执行该步骤 - 清理场景所做的配置更改等。但是由于每个场景不同的是,我需要进行的配置更改特定于某个场景,因此我无法使用 environment.py 文件中的 after_scenario 挂钩。关于如何实现类似的任何想法?

4

2 回答 2

0

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

@clean_up
Scenario: Something
    ...

而你的后听众为

def after_scenario(context, scenario):
    if 'clean_up' in scenario.tags:
        ...
    elif 'clean_down' in scenario.tags:
        ...
于 2016-07-14T02:58:25.957 回答
0

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

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

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

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

类似的东西对你有用吗?

于 2016-07-28T17:58:37.383 回答