跳转到主要内容

一个pytest插件,可以优雅地跳过具有可选要求的测试

项目描述

pytest-requires

PyPI version

Python versions

Build status

一个pytest插件,可以优雅地跳过具有可选要求的测试


pytest插件是使用Cookiecutter以及@hackebrotcookiecutter-pytest-plugin模板生成的。

功能

  • 装饰需要可选模块(带有可选的最小版本)的测试,并在无法导入这些要求时优雅地跳过它们

要求

  • pytest

安装

您可以通过从PyPI使用pip安装 "pytest-requires"。

pip install pytest-requires

使用方法

如何使用pytest-requires

使用pytest-requires,测试可以标记为需要外部模块,如下所示

@pytest.mark.requires("dateutil")
def test_date_parsing():
    assert date_parsing() == RESULT

在此示例中,如果python-dateutil模块未安装,则测试将跳过。导入测试全部由pytest的内置importorskip函数执行。

注意

  • 可以使用minversion关键字指定所需模块的最低可接受版本
  • 可以指定多个模块作为位置参数,如果无法导入指定的任何模块,则将装饰的测试跳过
  • 在多个模块的情况下,只能指定一个 minversion,并将用于所有模块;如果每个模块都需要独立的 minversion,则使用多个 @pytest.mark.requires 装饰器。

为什么不直接使用 pytest.importorskip 呢?

pytest.importorskip 是为了导入一个模块并将其添加到命名空间(模块的或测试函数的命名空间)。如果可选模块在测试本身中没有被使用,但确实是 被测试的函数 的实际需求,那么对 importorskip 的调用(按照作者的观点)不如装饰器调用优雅。

贡献

欢迎贡献,请发起一个 Pull Request。

许可证

在 MIT 许可证下分发,"pytest-requires" 是免费的开放源代码软件

问题

如果您遇到任何问题,请提供详细描述,并在 此处创建一个问题

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪一个,请了解有关 安装包 的更多信息。

源分布

pytest-requires-0.1.0.tar.gz (4.7 kB 查看哈希值)

上传时间

构建分布

pytest_requires-0.1.0-py3-none-any.whl (4.4 kB 查看哈希值)

上传时间 Python 3

由以下机构支持