Pytest之基本介绍
Pytest概念
Pytest
是 Python 的一种单元测试框架,与 Python 自带的 unittest
测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。
Pytest特点
Pytest是一个非常成熟的Python测试框架,主要特点有以下几点:
-
非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考;
-
能够支持简单的单元测试和复杂的功能测试;
-
支持参数化;
-
执行测试过程中可以将某些测试用例跳过(skip),或者对某些预期失败的case标记成失败;
-
支持重复执行(rerun)失败的 case;
-
支持运行由 nose, unittest 编写的测试 case;
-
可生成html 报告;
-
方便jenkins持续集成;
-
可支持执行部分用例;
-
具有很多第三方插件,并且可以自定义扩展。
Pytest安装
① 安装pytest命令:
pip install pytest
② 查看pytest版本:
pytest --version
③ 安装生成测试结果的HTML报告pytest-html。
pip install pytest-html
这里已经安装过,所以输出信息和第一次安装不一样。
Pycharm配置Pytest
① pycharm依次选择,File->Settings->Tools->Python Integrated Tools。
② 配置用例脚本运行模式。
③ 菜单栏,点击Edit Configurations。
④ 依次点击"+" --》 Python tests --》pytest,配置项目路径如下:
Pytest用例运行规则
用Pytest写用例时候,一定要按照下面的规则去写,否则不符合规则的测试用例是不会执行的。
-
文件名以 test_*.py 文件或*_test.py;
-
以
test_
开头的函数; -
以
Test
开头的类,不能包含 __init__ 方法; -
以
test_
开头的类里面的方法; -
所有的包(package)必项要有__init__.py 文件。
Pytest简单使用
环境都准备好了,尝试下使用pytest运行用例。
① 新建py文件,写两条测试用例。
1 2 3 4 5 6 7 | import pytest def test_demo1(): assert 3 = = 3 def test_demo2(): assert 3 = = 5 if __name__ = = '__main__' : pytest.main() |
② 运行之后,结果如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | Testing started at 12 : 37 ... C:\Users\ 96984 \Desktop\code\learn_pytest\venv\Scripts\python.exe "C:\ruanjian\pycharm2019.3\PyCharm 2019.3.1\plugins\python\helpers\pycharm\_jb_pytest_runner.py" - - path C: / Users / 96984 / Desktop / code / learn_pytest / demo / demo_pytest.py Launching pytest with arguments C: / Users / 96984 / Desktop / code / learn_pytest / demo / demo_pytest.py in C:\Users\ 96984 \Desktop\code\learn_pytest\demo = = = = = = = = = = = = = = = = = = = = = = = = = = = = = test session starts = = = = = = = = = = = = = = = = = = = = = = = = = = = = = platform win32 - - Python 3.6 . 8 , pytest - 5.4 . 3 , py - 1.9 . 0 , pluggy - 0.13 . 1 - - C:\Users\ 96984 \Desktop\code\learn_pytest\venv\Scripts\python.exe cachedir: .pytest_cache metadata: { 'Python' : '3.6.8' , 'Platform' : 'Windows-10-10.0.18362-SP0' , 'Packages' : { 'pytest' : '5.4.3' , 'py' : '1.9.0' , 'pluggy' : '0.13.1' }, 'Plugins' : { 'html' : '2.1.1' , 'metadata' : '1.10.0' }, 'JAVA_HOME' : 'C:\\Program Files\\Java\\jdk1.8.0_77' } rootdir: C:\Users\ 96984 \Desktop\code\learn_pytest\demo plugins: html - 2.1 . 1 , metadata - 1.10 . 0 collecting ... collected 2 items demo_pytest.py::test_demo1 PASSED [ 50 % ] demo_pytest.py::test_demo2 FAILED [ 100 % ] demo_pytest.py: 8 (test_demo2) def test_demo2(): > assert 3 = = 5 E AssertionError demo_pytest.py: 10 : AssertionError = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = FAILURES = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = _________________________________ test_demo2 __________________________________ def test_demo2(): > assert 3 = = 5 E AssertionError demo_pytest.py: 10 : AssertionError = = = = = = = = = = = = = = = = = = = = = = = = = = = short test summary info = = = = = = = = = = = = = = = = = = = = = = = = = = = FAILED demo_pytest.py::test_demo2 - AssertionError = = = = = = = = = = = = = = = = = = = = = = = = = 1 failed, 1 passed in 0.05s = = = = = = = = = = = = = = = = = = = = = = = = = Process finished with exit code 0 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2018-10-16 express常用中间件