pytest 中的metadata
pytest中元数据(metadata)
注意我们在执行了 pytest testcase/test_001.py -v --html=res.html
生成的html报告中有一些基本信息。这些信息怎么来的,我们能修改吗?
答案是可以的,在pytest中叫做metadata 元数据
-
在执行命令时添加
pytest testcase/test_001.py -v --metadata name tarzan
就会在报告中出现 -
在
conftest.py
中使用钩子函数添加和修改、删除等# conftest.py import pytest @pytest.hookimpl(optionalhook=True) def pytest_metadata(metadata:dict): metadata['auth'] = 'Tarzan'
-
可以在测试用例中访问metadate
使用
metadata fixture
# test_001.py def test_1(metadata): print(metadata) print(type(metadata)) assert 'metadata' not in metadata['Plugins']
输出:
{'Python': '3.7.3', 'Platform': 'Linux-5.10.0-amd64-desktop-x86_64-with-uos-20-eagle', 'Packages': {'pytest': '6.2.5', 'pluggy': '1.0.0'}, 'Plugins': {'playwright': '0.3.0', 'anyio': '3.6.2', 'base-url': '2.0.0', 'rerunfailures': '10.2', 'repeat': '0.9.1', 'timeout': '2.1.0', 'metadata': '2.0.4', 'allure-pytest': '2.9.45', 'html': '3.2.0'}, 'JAVA_HOME': '/usr/lib/jvm/java-11-openjdk-amd64', 'auth': 'Tarzan', 'Base URL': ''} <class 'dict'>