一个pytest插件,可以优雅地跳过具有可选要求的测试
项目描述
pytest-requires
一个pytest插件,可以优雅地跳过具有可选要求的测试
此pytest插件是使用Cookiecutter以及@hackebrot的cookiecutter-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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1d7ee62cffcd4d6ba16d21e5f96fc6d9006ef94f923d64e278d8b5fddbec924e |
|
MD5 | e63655e631adf8fcdd8063c01a38cdee |
|
BLAKE2b-256 | abfc2fc8d97d40b3bb74d93ba7baf06644f2e53daf31345721b5548acb2123e8 |
关闭
pytest-requires-0.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f13f3a7dd2d1f0df4affd2873719d0836f27012cea1a04efe6c7c117d4ec53cf |
|
MD5 | 824e1d86a116ff2eec84af1924c96916 |
|
BLAKE2b-256 | 2ebf551afa01bc600ba472489a2269f87a8396424d965b864415a41494c541bd |