如何从pytest fixture中读取测试函数的文档字符串?
如何在pytest Fixture中获取测试函数的文档字符串
直接通过request.node.obj.__doc__即可获取测试函数的文档字符串。request.node代表当前执行的测试项,其obj属性指向对应的测试函数对象,访问该对象的__doc__属性就能拿到文档字符串。
修改后的conftest.py示例:
import pytest @pytest.fixture(scope='function', autouse=True) def publish_to_pubsub(request): test_func = request.node.obj test_name = request.node.name # 获取文档字符串,处理无文档的情况 test_docstring = test_func.__doc__ or "无文档字符串" print(f"\n\nSTARTED Test '{test_name}'") # 输出格式化后的文档字符串 print(f"测试文档: {test_docstring.strip() if test_docstring else '无'}") def fin(): print(f"COMPLETED Test '{test_name}'\n") request.addfinalizer(fin)
说明:如果测试函数未定义文档字符串,__doc__会返回None,示例中添加了默认值处理这种场景,避免输出异常。
内容的提问来源于stack exchange,提问作者gthy
相关产品推荐
相关产品推荐

