目录:
- 安装及入门
- 使用和调用方法
- 原有TestSuite使用方法
- 断言的编写和报告
- Pytest fixtures:清晰 模块化 易扩展
- 使用Marks标记测试用例
- Monkeypatching/对模块和环境进行Mock
- 使用tmp目录和文件
- 捕获stdout及stderr输出
- 捕获警告信息
- 模块及测试文件中集成doctest测试
- skip及xfail: 处理不能成功的测试用例
- Fixture方法及测试用例的参数化
- 缓存: 使用跨执行状态
- unittest.TestCase支持
- 运行Nose用例
- 经典xUnit风格的setup/teardown
- 安装和使用插件
- 插件编写
- 编写钩子(hook)方法
- 运行日志
- API参考
- 优质集成实践
- 片状测试
- Pytest导入机制及sys.path/PYTHONPATH
- 配置选项
- 示例及自定义技巧
- Bash自动补全设置
安装和使用插件
本节讨论如何安装和使用第三方插件。有关编写自己的插件的信息,请参阅编写插件。
安装第三方插件可以通过以下方式轻松完成pip
:
pip install pytest-NAME
pip uninstall pytest-NAME
如果安装了插件,则pytest
自动查找并集成它,无需激活它。
这是一些流行插件的小注释列表:
- pytest-django:使用pytest集成为django应用程序编写测试。
- pytest-twisted:为扭曲的应用程序编写测试,启动反应堆并处理测试函数的延迟。
- pytest-cov:覆盖率报告,与分布式测试兼容
- pytest-xdist:将测试分发到CPU和远程主机,以盒装模式运行,允许分段故障,在looponfailing模式下运行,自动重新运行文件更改的失败测试。
- pytest-instafail:在测试运行期间报告失败。
- pytest-bdd和 pytest-konira 使用行为驱动的测试编写测试。
- pytest-timeout:根据函数标记或全局定义进行超时测试。
-
pytest-pep8:
--pep8
启用PEP8合规性检查的选项。 - pytest-flakes:用pyflakes检查源代码。
- oejskit:在实时浏览器中运行javascript unittests的插件。
要查看具有针对不同pytest和Python版本的最新测试状态的所有插件的完整列表,请访问plugincompat。
你还可以通过pytest-pypi.org搜索发现更多插件。
在测试模块或conftest文件中要求/加载插件
你可以在测试模块或conftest文件中要求插件,如下所示:
pytest_plugins = ("myapp.testsupport.myplugin",)
加载测试模块或conftest插件时,也会加载指定的插件。
注意
pytest_plugins
不建议使用非根conftest.py
文件中使用变量的 插件。请参阅 “编写插件”部分中的完整说明。
注意
该名称pytest_plugins
是保留的,不应用作自定义插件模块的名称。
找出哪些插件是活动的
如果要查找环境中哪些插件处于活动状态,可以键入:
pytest --trace-config
并将获得一个扩展的测试标题,显示激活的插件及其名称。它还会在加载时打印本地插件akaconftest.py文件。
按名称取消/取消注册插件
你可以阻止插件加载或取消注册:
pytest -p no:NAME
这意味着任何后续尝试激活/加载命名插件都不起作用。
如果要无条件禁用项目插件,可以将此选项添加到pytest.ini
文件中:
[pytest]
addopts = -p no:NAME
或者,仅在某些环境中禁用它(例如在CI服务器中),可以将PYTEST_ADDOPTS
环境变量设置为 。-p no:name
请参阅查找有关如何获取插件名称的活动插件。