Behave 将所有测试打印到文本文件
Behave print all tests to a text file
我被要求提供我们 运行 的每个行为特征和场景的列表,作为我们向外部客户提供文档(而不是步骤)的回归包的一部分
由于我们的回归测试套件目前大约有 50 个功能文件,每个文件至少有 10 个场景,所以我不想手动复制和粘贴。
有没有办法将功能名称和 ID,然后将该功能下的每个场景的名称和 ID 导出到 CSV 或文本文件?
目前我们的行为测试是 运行 本地的,我正在使用 PyCharm IDE 来编辑它们。
我找到了一个迂回的方法来做到这一点。
将Behave设置为使用命令导出到外部txt文件
输出文件 = test_list
然后使用 behave -d 命令 运行 我的测试作为干 运行。
然后用每个测试的特性、场景和步骤填充 txt 文件。
我可以将其导出到 Excel,通过过滤可以隔离特征和场景行,删除步骤,然后使用文本分栏将 feature/scenario 描述与其测试 path/name 分开。
如果有一种不那么迂回的方式来执行此操作,那么最好知道,因为看起来这是我们需要能够半定期提供的信息,以便向前推进。
您可以利用context.scenario获取场景名称和功能名称,然后将它们写入文本文件。
您应该将这些代码放在 after_scenario 中 environment.py 中,以便您也可以获取场景状态。
我正在使用它来将场景名称、状态和功能名称导出到文本文件中。每个将由“|”分隔。我稍后将此文件导入 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)
希望对您有所帮助。
我被要求提供我们 运行 的每个行为特征和场景的列表,作为我们向外部客户提供文档(而不是步骤)的回归包的一部分
由于我们的回归测试套件目前大约有 50 个功能文件,每个文件至少有 10 个场景,所以我不想手动复制和粘贴。
有没有办法将功能名称和 ID,然后将该功能下的每个场景的名称和 ID 导出到 CSV 或文本文件?
目前我们的行为测试是 运行 本地的,我正在使用 PyCharm IDE 来编辑它们。
我找到了一个迂回的方法来做到这一点。
将Behave设置为使用命令导出到外部txt文件 输出文件 = test_list
然后使用 behave -d 命令 运行 我的测试作为干 运行。 然后用每个测试的特性、场景和步骤填充 txt 文件。 我可以将其导出到 Excel,通过过滤可以隔离特征和场景行,删除步骤,然后使用文本分栏将 feature/scenario 描述与其测试 path/name 分开。
如果有一种不那么迂回的方式来执行此操作,那么最好知道,因为看起来这是我们需要能够半定期提供的信息,以便向前推进。
您可以利用context.scenario获取场景名称和功能名称,然后将它们写入文本文件。 您应该将这些代码放在 after_scenario 中 environment.py 中,以便您也可以获取场景状态。
我正在使用它来将场景名称、状态和功能名称导出到文本文件中。每个将由“|”分隔。我稍后将此文件导入 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)
希望对您有所帮助。