跳过主要内容

pytest插件,用于访问测试会话元数据

项目描述

pytest-metadata是pytest的一个插件,提供对测试会话元数据的访问。

License PyPI https://img.shields.io/travis/pytest-dev/pytest-metadata.svg Travis Issues Requirements

要求

为了使用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_metadata-3.1.1.tar.gz (10.0 kB 查看哈希值)

上传时间 源码

构建版本

pytest_metadata-3.1.1-py3-none-any.whl (11.4 kB 查看哈希值)

上传时间 Python 3

由以下支持