行为将所有测试打印到文本文件

时间:2018-10-18 14:17:18

标签: python-behave

我被要求向外部客户提供我们作为回归包的一部分运行的每个行为功能和场景的列表(不是步骤)

由于我们的回归测试套件目前包含大约50个功能文件,每个文件中至少有10个场景,所以我不想手动复制和粘贴。

是否可以将功能名称和ID导出,然后将该功能下的每个方案的名称和ID导出到CSV或文本文件?

当前,我们的行为测试在本地运行,我正在使用PyCharm IDE对其进行编辑。

2 个答案:

答案 0 :(得分:0)

我找到了一种绕行的方法。

设置“使用以下命令将行为导出为外部txt文件” outfiles = test_list

然后使用行为-d命令以空运行方式运行我的测试。 然后,使用每个测试的功能,方案和步骤填充txt文件。 我可以将其导出到Excel,并通过过滤可以隔离功能和方案行,从而删除步骤,然后使用文本将列从其测试路径/名称中拆分功能/方案描述。

如果这样做的回旋方式较少,那么最好知道一下,因为这看起来是我们将需要能够半定期提供的信息。

答案 1 :(得分:0)

您可以利用context.scenario获取方案名称和功能名称,然后将它们写入文本文件。 您应该将这些代码放在environment.py中的after_scenario中,以便也可以获取方案状态。

我将其用于将方案名称,状态和功能名称导出到文本文件中。每个将由“ |”分隔。稍后,我将此文件导入到excel文件中进行报告。

这是您可以参考的代码:

def write_scenario_summary(context, scenario, report_path):
    try:
    # scenario status could be [untested, skipped, passed, failed]
        status = scenario.compute_status().name.upper()
        feature = ReportingHelper.get_feature_name(scenario)
        logging_info = '{status} | {feature} | | {scenario_name}'.format(
        status=status,
        feature=feature,
        scenario_name=scenario.name)
    print(logging_info, file=open(report_path, 'a'))


def get_feature_name(scenario):
    feature_file_path = scenario.feature.filename
    return os.path.basename(feature_file_path)

希望有帮助。