如何使用python重试失败的场景

时间:2016-02-23 07:16:36

标签: python-behave

有人可以告诉我“如何使用python再次运行失败的测试”。

如果失败,我想自动重新运行失败的测试用例。

任何帮助表示感谢。

由于

2 个答案:

答案 0 :(得分:8)

行为库实际上有RerunFormatter,可以帮助您重新运行先前测试运行的失败方案。它会创建一个包含所有失败方案的文本文件,如:

# -- file:rerun.features
# RERUN: Failing scenarios during last test run.
features/auth.feature:10
features/auth.feature:42
features/notifications.feature:67

要使用RerunFormatter,您只需将其放入行为配置文件( behave.ini ):

# -- file:behave.ini
[behave]
format   = rerun
outfiles = rerun_failing.features

要重新运行失败的方案,请使用以下命令:

behave @rerun_failing.features

答案 1 :(得分:1)

我知道这是稍后的答案,但这可以帮助其他人。

还有另一种方法也可以提供帮助,它是在environment.py文件下实现的,您可以通过特定标签进行重试。

提供支持功能以重试场景多次 在他们的失败被接受之前。此功能可能会有所帮助 当您在不可靠的服务器/网络中使用行为测试时 基础设施。

例如,我在CI上运行标签“ @smoke_test”,因此我选择此标签以根据重试条件进行修补。

首先,在您的environment.py上导入以下内容:

# -- file: environment.py
from behave.contrib.scenario_autoretry import patch_scenario_with_autoretry

然后添加方法:

# -- file:environment.py
#
def before_feature(context, feature):
    for scenario in feature.scenarios:
        if "smoke_test" in scenario.effective_tags:
            patch_scenario_with_autoretry(scenario, max_attempts=3)

* max_attempts默认情况下设置为3。我刚刚在此处进行了介绍,以明确表明您可以实际设置所需的重试次数。