- 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
- 项目实例
- 历史笔记
- 弃用和移除
- 发展指南
- 演讲和辅导
py.test 2.0.0:断言++、UnitTest++、Reporting++、Config++、Docs++
欢迎使用Pytest-2.0.0,这是快速、简单的Python测试工具 py.test 的主要新版本。有许多新功能和增强功能,请参阅下面的摘要和详细列表。许多长期不推荐使用的代码已被删除,从而导致实现更小、更干净。请参阅以下示例中的新文档:
包装注意事项:Pytest在PY-1.3.4版本之前一直是 PY 发行版的一部分,但现在已经改变了:Pytest-2.0.0只包含与PY.test相关的代码,并且期望与现有的测试代码向后兼容。如果要安装pytest,只需键入以下内容之一:
pip install -U pytest easy_install -U pytest
感谢所有的新闻记者和提问或抱怨的人。特别感谢FlorisBruynooghe和RonnyPfanschmidt对编码的贡献,以及许多其他人的反馈和帮助。
最好的,霍尔格·克里克
新特点
通过python解释器和python进行的新调用:
python -m pytest # on all pythons >= 2.5
或者从python程序:
import pytest ; pytest.main(arglist, pluginlist)
看到了吗http://pytest.org/en/stable/usage.html了解详情。
如果比较列表、序列或字符串,则在断言表达式中报告新的和更好的信息。
看到了吗http://pytest.org/en/stable/assert.htmlnewreport
通过ini文件的新配置(已识别setup.cfg或tox.ini),例如:
[pytest] norecursedirs = .hg data* # don't ever recurse in such dirs addopts = -x --pyargs # add these command line options by default
看到了吗http://pytest.org/en/stable/customize.html
改进的标准单元测试支持。一般来说,py.test现在应该能够更好地运行自定义的unittest.testcase,比如twisted trial或基于django的testcase。您现在还可以使用py.test:运行已安装的 unittest 包的测试:
py.test --pyargs unittest
新的 -q 选项减少了冗长的内容,并打印出更多的鼻/单元测试样式的 点 输出。
许多更详细的改进细节
修正
修复问题126-在测试运行期间引入py.test.set_trace()以通过pdb跟踪执行,即使捕获正在进行。
修复问题124-使报告对在文件描述符1(stdout)上打开文件的测试更有弹性。
修复问题109-将不加载同级conftest.py文件。(目录收集器不能再从目录的conftest.py中定制了——这至少需要在一个级别上进行)。
修复问题88(从命令行arg中查找自定义测试节点)
修复问题93导入conftest.py时捕获stdout/stderr
修复错误:UnitTest收集的函数现在也可以在类/模块级别应用 pytestmark 。
重要音符
在python代码中使用py.test的2.0之前版本中,通常的方法是导入 py ,然后为助手使用 py.test.raises 。这仍然有效,不计划弃用。但是,在大多数示例和内部代码中,您会发现 import pytest 和 pytest.raises 用作推荐的默认方法。
在运行任何测试之前,pytest现在首先执行完整测试套件的收集。例如,当调用pytest_collectstart/pytest_collectreport时,语义会发生变化。某些插件可能需要升级。
pytest包由一个400 loc core.py和大约20个内置插件组成,总计大约5000个loc,包括docstring。公平地说,它还使用来自 pylib 的通用代码和新的 py 包来帮助文件系统和内省/代码操作。
(不兼容)删除
py.test.config现在只有在测试运行时才可用。
删除了以下(大部分已弃用)功能:
移除模块/类/的支架。conftest.py文件中的集合节点定义。它们不会造成什么特别的后果。
删除了对调用 run() 和 join 的1.0之前的集合API的支持
已从conftest.py文件或env变量中删除读取选项值。现在可以通过ini文件机制,特别是 addopts 条目,更好、更容易地完成这项工作。
删除了测试类中的 disabled 属性。使用跳过和pytestmark机制跳过或Xfail测试类。
py.test.collect.directory不再存在,无法提供自己的 directory 对象。如果你用过这个但不知道该怎么做,联系一下。我们会想办法的。
注意,pytest_collect_directory()仍然被调用,但任何返回值都将被忽略。这允许保持旧代码的工作状态,例如collect()中的 py.test.skip() 以防止在缺少某个依赖项或命令行选项时递归到目录树中。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论