gpt4 book ai didi

pytest - 如何在 pytest 运行时获取测试名称和测试结果

转载 作者:行者123 更新时间:2023-12-04 13:23:39 28 4
gpt4 key购买 nike

我想在运行时获取测试名称和测试结果。

我有 setuptearDown我的脚本中的方法。在 setup ,我需要获取测试名称,并在 tearDown我需要得到测试结果和测试执行时间。

有没有办法我可以做到这一点?

最佳答案

你可以,用一个钩子(Hook)。

我的测试目录中有这些文件:

./rest/
├── conftest.py
├── __init__.py
└── test_rest_author.py

test_rest_author.py我有三个功能, startup , teardowntest_tc15 ,但我只想显示 test_tc15 的结果和名称.

创建 conftest.py如果您还没有文件,请添加以下内容:
import pytest
from _pytest.runner import runtestprotocol

def pytest_runtest_protocol(item, nextitem):
reports = runtestprotocol(item, nextitem=nextitem)
for report in reports:
if report.when == 'call':
print '\n%s --- %s' % (item.name, report.outcome)
return True

钩子(Hook) pytest_runtest_protocol为给定的测试项实现 runtest_setup/call/teardown 协议(protocol),包括捕获异常和调用报告 Hook 。当任何测试完成时调用它(如 startupteardown 或您的测试)。

如果您运行脚本,您可以看到测试的结果和名称:
$ py.test ./rest/test_rest_author.py
====== test session starts ======
/test_rest_author.py::TestREST::test_tc15 PASSED
test_tc15 --- passed
======== 1 passed in 1.47 seconds =======

另请参阅 pytest hooks 上的文档和 conftest.py .

关于pytest - 如何在 pytest 运行时获取测试名称和测试结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14121657/

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