pytest插件,用于访问测试会话元数据
项目描述
pytest-metadata是pytest的一个插件,提供对测试会话元数据的访问。
要求
为了使用pytest-metadata,您需要以下内容
Python 3.8+或PyPy3
安装
要安装pytest-metadata
$ pip install pytest-metadata
贡献
我们欢迎贡献。
了解更多信息,请参阅 开发
可用元数据
以下元数据由此插件收集
键 |
描述 |
示例 |
---|---|---|
Python |
Python版本 |
3.6.4 |
平台 |
平台 |
Darwin-17.4.0-x86_64-i386-64bit |
包 |
pytest包 |
Python版本:1.5.2,pytest版本:3.4.1 |
插件 |
pytest插件 |
元数据:1.6.0 |
额外元数据
您可以通过在命令行指定 --metadata 来提供自己的元数据(键值对)
pytest --metadata foo bar
注意:您可以提供多个 --metadata 集合
pytest --metadata foo bar --metadata baz zoo
还可以将元数据作为JSON字符串传递
pytest --metadata-from-json '{"cat_says": "bring the cat nip", "human_says": "yes kitty"}'
或者可以从指定的文件中读取JSON
pytest --metadata-from-json-file path/to/valid/file.json
持续集成
在持续集成环境中运行时,将从环境变量中添加额外的元数据。以下是支持的持续集成提供者列表,以及如果存在,则添加到元数据中的环境变量链接。
注意:如果您使用 Tox 来运行测试,则需要 传递任何额外的环境变量,以便它们被拾取。
查看元数据
当您在运行测试时在命令行上传递 --verbose,则元数据将显示在终端报告标题中
pytest --verbose ============================ test session starts ============================ platform darwin -- Python 3.6.4, pytest-3.4.1, py-1.5.2, pluggy-0.6.0 -- /usr/bin/python cachedir: .pytest_cache metadata: {'Python': '3.6.4', 'Platform': 'Darwin-17.4.0-x86_64-i386-64bit', 'Packages': {'pytest': '3.4.1', 'py': '1.5.2', 'pluggy': '0.6.0'}, 'Plugins': {'metadata': '1.6.0'}} plugins: metadata-1.6.0
在Junit XML中包含元数据
pytest-metadata提供了会话作用域的固定装置 include_metadata_in_junit_xml
,您可以使用它将任何元数据作为 属性 标签包含在Junit XML中。例如以下测试模块
import pytest
pytestmark = pytest.mark.usefixtures('include_metadata_in_junit_xml')
def test():
pass
当调用时
pytest --metadata Daffy Duck --junit-xml=results.xml
将生成以下XML
<?xml version="1.0" encoding="utf-8"?>
<testsuites>
<testsuite name="pytest" errors="0" failures="0" skipped="0" tests="1" time="0.009" timestamp="2020-11-27T06:38:44.407674" hostname="sam">
<properties>
<property name="Daffy" value="Duck"/>
...
访问元数据
要收集元数据结束时添加/修改/删除元数据,您可以使用 pytest_metadata 钩子
import pytest
@pytest.hookimpl(optionalhook=True)
def pytest_metadata(metadata):
metadata.pop("password", None)
要从测试或固定装置访问元数据,您可以使用 metadata 固定装置
def test_metadata(metadata):
assert 'metadata' in metadata['Plugins']
要从插件访问元数据,您可以使用 config 对象的 stash 属性。这可以用来读取/添加/修改元数据
def pytest_configure(config):
metadata = config.pluginmanager.getplugin("metadata")
if metadata:
from pytest_metadata.plugin import metadata_key
config.stash[metadata_key]['foo'] = 'bar'
插件集成
以下是一个实用列表,列出了读取或贡献元数据的插件
pytest-base-url - 将基本URL添加到元数据中。
pytest-html - 在每个报告的开始显示元数据。
pytest-reporter-html1 - 将元数据作为报告的一部分显示。
pytest-selenium - 将驱动程序、能力和远程服务器添加到元数据中。
资源
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建版本
pytest_metadata-3.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d2a29b0355fbc03f168aa96d41ff88b1a3b44a3b02acbe491801c98a048017c8 |
|
MD5 | 059f46147560a3da65c2270fb6f52965 |
|
BLAKE2b-256 | a6858c969f8bec4e559f8f2b958a15229a35495f5b4ce499f6b865eac54b878d |
pytest_metadata-3.1.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c8e0844db684ee1c798cfa38908d20d67d0463ecb6137c72e91f418558dd5f4b |
|
MD5 | 9159247cfd9c2aa518f9e0e4eb24fd17 |
|
BLAKE2b-256 | 3e437e7b2ec865caa92f67b8f0e9231a798d102724ca4c0e1f414316be1c1ef2 |