gpt4 book ai didi

python - 如何在使用 Robot Framework 时打印可用标签

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:06 27 4
gpt4 key购买 nike

如果我在 Robot Framework 中有一个大型测试套件并且有很多标签,是否可以了解套件中可用的标签名称列表?

像 pybot --listtags 之类的东西 ??

这对实际要运行测试的人很有用。

例如,在与新闻文章发布相关的场景中,测试用例可能被标记为“publish”、“published”或“publishing”。

测试人员不会随意使用 RIDE。因此他/她可能不知道确切的标签名称。

在这些情况下,我认为提取可用标签进行显示会很有用——无需运行任何测试。然后他/她可以选择使用所需的标签运行测试

我搜索了机器人框架用户指南,但没有看到执行此操作的任何命令行选项。

最佳答案

机器人没有提供任何东西来为您提供此信息。但是,编写使用机器人解析器获取所有标签信息的 python 脚本非常容易。这是我认为正确的快速破解方法(尽管我只对其进行了非常简短的测试):

from robot.parsing import TestData
import sys

def main(path):
suite = TestData(parent=None, source=path)
tags = get_tags(suite)
print ", ".join(sorted(set(tags)))

def get_tags(suite):
tags = []

if suite.setting_table.force_tags:
tags.extend(suite.setting_table.force_tags.value)

if suite.setting_table.default_tags:
tags.extend(suite.setting_table.default_tags.value)

for testcase in suite.testcase_table.tests:
if testcase.tags:
tags.extend(testcase.tags.value)

for child_suite in suite.children:
tags.extend(get_tags(child_suite))

return tags

if __name__ == "__main__":
main(sys.argv[1])

请注意,这将不会获取由 Set Tags 创建的任何标签关键字,也不考虑 Remove Tags 删除的标签.

将代码保存到一个文件中,例如get_tags.py,然后像这样运行它:

$ python /tmp/get_tags.py /tmp/tests/
a tag, another force tag, another tag, default tag, force tag, tag-1, tag-2

关于python - 如何在使用 Robot Framework 时打印可用标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23648826/

27 4 0