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文件,写两条测试用例。
-
import pytest
-
def test_demo1():
-
assert 3 == 3
-
def test_demo2():
-
assert 3 == 5
-
if __name__ == '__main__':
-
pytest.main()
② 运行之后,结果如下:
-
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
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggbeai
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01