gpt4 book ai didi

python - 收集和报告 pytest 结果

转载 作者:行者123 更新时间:2023-11-28 20:20:57 25 4
gpt4 key购买 nike

我正在通过 pytest 进行一些 Selenium 测试。下一步是开始做一些报告。我想写一些能让我运行测试、收集结果并发送电子邮件的东西。到目前为止,我发现最接近的是将测试结果写入结果日志,然后使用插件检查存在状态并从那里发送电子邮件。这可行,但有点麻烦,我希望有一种更优雅的方法来做到这一点。虽然整体 pytest 文档很棒,但插件文档却很差 - 我什至无法在任何地方找到 pytest_sessionfinish,即使它看起来可以工作。

import pytest

class MyPlugin:
def pytest_sessionfinish(self, exitstatus):
if exitstatus == 0:
#Send success email
pass
else:
#Read output.txt
#Add output.txt to email body
#Send email
pass

pytest.main("--resultlog=output.txt", plugins=[MyPlugin()])

问:从 pytest 运行和收集结果的最佳方式是什么?


最佳答案

生成结果报告的一种简单方法是在运行测试时使用 pytest 选项 --junitxml。 pytest 会生成 JUnit 格式的测试报告。

由于 JUnit 被广泛使用,因此很容易找到工具来解析报告并生成一些好看的输出,例如 HTML 报告。据我所知,Jenkins 上有一些插件可以很好地解析 JUnit 报告并提供漂亮的报告。

访问https://pytest.org/latest/usage.html并引用“创建 JUnitXML 格式文件”部分。

不仅如此,pytest 还提供了一种在您有权访问 pytest 对象请求或配置时扩展 JUnit XML 报告的方法:

if hasattr(request.config, "_xml"):
request.config._xml.add_custom_property(name, value)

如果在测试用例中,pytest 提供了一个固定装置来执行此操作:

def test_function(record_xml_property):
record_xml_property("key", "value")
assert 0

这会将自定义属性添加到 JUnit XML 报告。

关于python - 收集和报告 pytest 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29597972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com