PyTest一个Python 框架,可编写小型测试,支持更复杂的功能测试
项目地址:https://github.com/pytest-dev/pytest
pytest有哪些优点?
- 允许直接使用assert进行断言,而不需要使用self.assert*;
- 可以自动寻找单测文件、类和函数;
- Modular fixtures可以用于管理小型或参数化的测试信息;
- 与unittest和nose单测框架兼容;
- 兼容性较好,支持Python 2.7,Python 3.4+。
- 丰富的插件支持,共计有超过315个插件支持;
安装
开始讲解的第一步,还是先来了解一下如何进行安装~
pytest可以直接使用Python的包管理工具pip来进行安装。
pip install -U pytest
执行上述命令后,即可安装完成pytest。
编写单测用例
在pytest框架中,有如下约束:
- 所有的单测文件名都需要满足test_*.py格式或*_test.py格式。
- 在单测文件中,可以包含test_开头的函数,也可以包含Test开头的类。
- 在单测类中,可以包含一个或多个test_开头的函数。
此时,在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行。
示例:test_case1.py文件如下:
class TestClass(object): def test_one(self): x = "this" assert 'h' in x def test_two(self): x = "hello" assert hasattr(x, 'check')
兼容unittest与nose
如果之前你的单测全部是基于unittest或者nose来编写的。
不用担心,执行pytest命令同样可以正常运行这些用例并得到结果。
因此无需担心迁移单测框架从而带来额外的人工成本。
常用插件
在之前的内容中,我们提到了pytest的一个优点是有大量的插件支持,例如:
- pytest-django: 针对Django框架的单测框架
- pytest-twisted: 针对twisted框架的单测框架
- pytest-cov: 产生覆盖率报告
- pytest-instafail: 发送错误时报告错误信息
- pytest-bdd 测试驱动开发工具
- pytest-konira 测试驱动开发工具
- pytest-timeout: 支持超时功能
- pytest-pep8: 支持PEP8检查
- pytest-flakes: 结合pyflakes进行代码检查
相关推荐
yuzhongdelei0 2020-07-04
emagtestage 2020-08-16
abdstime 2020-07-08
Dipa 2020-06-09
坚持是一种品质 2020-05-29
goodby 2020-05-07
leonranri 2020-04-29
测试自动化顾问 2020-04-16
HappinessCat 2020-03-23
lucialee 2020-02-02
abdstime 2020-01-06
oXiaoChong 2020-01-02
nercon 2019-12-27
meylovezn 2019-12-16
abdstime 2019-12-01
PP研究思考 2019-09-24