跳转到主要内容

轻松声明可选测试(即默认不运行的测试)

项目描述

PyPI version Python versions See Build Status on Travis CI

提供使用pytest标记轻松声明可选测试的功能。可选测试仅在请求时通过配置文件或命令行运行。


动机

某些测试类不应该在每次测试调用时运行。在特定请求时运行测试通常很有用,例如,运行速度较慢、需要网络访问或仅在特定环境中工作的测试。

Pytest提供了根据测试名称(-k)运行测试的机制,以及根据标记(-m)过滤测试的机制。这两个机制都不易于默认抑制某些测试。例如,可能用@pytest.mark.network装饰测试,但默认禁用它需要每个调用时带有标记表达式如-m “not network”。当有多个标记时,标记和标记表达式会变得难以管理。

此插件允许用户声明某些标记为“可选标记”。当测试用可选标记装饰时,默认情况下会跳过测试。测试可以装饰多个标记,包括多个可选标记。可选测试可以在pytest ini文件或命令行中启用。

安装

您可以从PyPI通过pip安装“pytest-optional-tests”。

$ pip install pytest-optional-tests

用法

可选标记必须在inicfg中使用与markers选项相同的语法声明。例如

[pytest]
optional_tests:
  slow: slow tests
  network: network tests
  bug: regression tests against previous bugs

即使在pytest的strict模式下,也不应该使用markers属性来声明可选标记。

可选测试装饰器是pytest标记,其语义是相同的。

如果一个测试被多个可选标记装饰,当请求任何标记时,测试将执行。例如

@pytest.mark.network
@pytest.mark.slow
def test_slow_network_function(): ...

如果请求了可选的slownetwork测试中的任意一个或两个,它将被测试。

可选测试可以在inicfg中请求

[pytest]
optional_tests:
  slow: slow tests
  network: network tests
  bug: regression tests against previous bugs
run_optional_tests=network,slow

或命令行中

pytest --run-option-tests=network,slow

贡献

欢迎贡献。可以使用tox运行测试,请在提交pull request之前确保覆盖率至少保持不变。

许可证

根据MIT许可证分发。

问题

如果您遇到任何问题,请提交问题,并附带详细的描述。

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

项目详情


下载文件

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

源分布

pytest-optional-tests-0.1.1.tar.gz (7.6 kB 查看哈希)

上传时间

构建分布

pytest_optional_tests-0.1.1-py3-none-any.whl (5.5 kB 查看哈希)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面