- Pytest:帮助您编写更好的程序
- 完整的 Pytest 文档
- 安装和入门
- 使用和调用
- 在现有测试套件中使用 pytest
- 测试中断言的编写和报告
- Pytest 夹具:显式、模块化、可扩展
- 用属性标记测试函数
- MonkeyPatching / Mocking 模块和环境
- 临时目录和文件
- 捕获 stdout/stderr 输出
- 捕获警告
- 模块和测试文件的 Doctest 集成
- 跳过和 xfail:处理无法成功的测试
- 参数化夹具和测试功能
- 缓存:使用交叉测试运行状态
- UnitTest.TestCase 支持
- 运行为鼻子编写的测试
- 经典的 Xunit 风格设置
- 安装和使用插件
- 编写插件
- 登录
- 良好的集成实践
- 古怪的测试
- Pytest 导入机制和 sys.path/PYTHONPATH
- 设置 bash 完成
- API 引用
- _pytest.hookspec
- _pytest.python_api
- _pytest.outcomes
- _pytest.config
- _pytest.mark
- _pytest.recwarn
- _pytest.assertion
- _pytest.freeze_support
- _pytest.fixtures
- _pytest.cacheprovider
- _pytest.capture
- _pytest.doctest
- _pytest.junitxml
- _pytest.logging
- _pytest.monkeypatch
- _pytest.pytester
- _pytest.tmpdir
- _pytest.python
- _pytest.nodes
- _pytest.reports
- _pytest._code.code
- _pytest.config.argparsing
- _pytest.main
- pluggy.callers
- _pytest.config.exceptions
- py.test 2.0.0:断言++、UnitTest++、Reporting++、Config++、Docs++
- 示例和自定义技巧
- 配置
- 贡献开始
- 向后兼容策略
- Python 2.7 和 3.4 支持
- 企业版 pytest
- 项目实例
- 历史笔记
- 弃用和移除
- 发展指南
- 演讲和辅导
用属性标记测试函数
通过使用 pytest.mark
helper您可以轻松地在测试函数上设置元数据。您可以在中找到内置标记的完整列表 API Reference . 也可以使用CLI列出所有标记,包括内置和自定义- pytest --markers
.
以下是一些内置标记:
usefixtures -在测试函数或类上使用fixture
filterwarnings -过滤测试函数的某些警告
skip -总是跳过测试函数
skipif -如果满足某个条件,则跳过测试函数
xfail -如果满足某个条件,则产生 预期失败 结果。
parametrize -对同一测试函数执行多个调用。
很容易创建自定义标记或将标记应用于整个测试类或模块。这些标记可以被插件使用,也常用于 select tests 在命令行上 -m
选择权。
见 使用自定义标记 作为文件的例子。
注解
标记只能用于测试,对 fixtures .
注册标记
您可以在 pytest.ini
像这样的文件:
[pytest] markers = slow: marks tests as slow (deselect with '-m "not slow"') serial
或者在你的 pyproject.toml
像这样的文件:
[tool.pytest.ini_options] markers = [ "slow: marks tests as slow (deselect with '-m \"not slow\"')", "serial", ]
请注意 :
标记名称后面是可选的描述。
或者,可以在 pytest_configure 钩子:
def pytest_configure(config): config.addinivalue_line( "markers", "env(name): mark test to run only on named environment" )
注册标记出现在Pytest的帮助文本中,不会发出警告(请参见下一节)。建议始终使用第三方插件 register their markers .
在未知标记上引发错误
未注册的标记应用于 @pytest.mark.name_of_the_mark
decorator将始终发出警告,以避免由于键入错误的名称而默默地做一些令人惊讶的事情。如前一节所述,您可以通过将自定义标记注册到 pytest.ini
文件或使用自定义 pytest_configure
钩子。
当 --strict-markers
传递了命令行标志,任何未知标记都将应用于 @pytest.mark.name_of_the_mark
decorator将触发一个错误。您可以通过添加 --strict-markers
到 addopts
:
[pytest] addopts = --strict-markers markers = slow: marks tests as slow (deselect with '-m "not slow"') serial
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论