pytest是python语言中一款强大的单元测试框架,用来管理和组织测试用例,可应用在单元测试、自动化测试工作中。

unittest也是python语言中一款单元测试框架,但是功能有限,没有pytest灵活。
就像:苹果电脑mac air和mac pro一样。都是具备同样的功能,但是好用,和更好用。
本文包含以下几个内容点:
- 1)pytest的简单示例
- 2)pytest的安装
- 3)pytest的特征、与unittest的区别。
- 4) pytest如何自动识别用例。
- 5)pytest框架中,用例的运行顺序。
1)pytest写用例很简单
下面是一个简单的例子:
import random
def test_demo():
assert 7 == random.randint(0,10)
运行结果如下:
============================= test session starts =============================
platform win32 -- Python 3.7.2, pytest-4.6.3, py-1.8.0, pluggy-0.12.0
rootdir: D:\Pychram-Workspace\STUDY_PYTEST
plugins: allure-pytest-2.6.5, html-1.21.1, metadata-1.8.0, rerunfailures-7.0collected 1 item
simple.py F
simple.py:10 (test_demo)
7 != 6
Expected :6
Actual :7
========================== 1 failed in 0.14 seconds ===========================
2)pytest的安装
安装命令:
pip install pytest
3)pytest的特征、与unittest的区别。
pytest的特征如下:
- 3.1 自动识别测试用例。(unittest当中,需要引入TestSuite,主动加载测试用例。)
- 3.2 简单的断言表达:assert表达式即可。(unittest当中,self.assert*)
- 3.3 有测试会话、测试模块、测试类、测试函数级别的fixture。(unittest当中是测试类、测试函数级别的fixture)
- 3.4有非常丰富的插件,目前在600+,比如allure插件。(unittest无)
- 3.5测试用例不需要封装在测试类当中。(unittest中需要自定义类并继承TestCase)
那么pytest是如何自动识别测试用例的呢?我们在编写pytest用例的时候,需要遵守哪些规则呢?
4) pytest如何自动识别用例
识别规则如下:
1、搜索根目录:默认从当前目录中搜集测试用例,即在哪个目录下运行pytest命令,则从哪个目录当中搜索;
2、搜索规则:
1)搜索文件:符合命名规则 test_*.py 或者 *_test.py 的文件
2)在满足1)的文件中识别用例的规则:
- 2.1)以test_开头的函数名;
- 2.2)以Test开头的测试类(没有__init__函数)当中,以test_开头的函数
示例:在D:\pycharm_workspace目录下,创建一个python工程,名为study_pytest。在工程下,创建一个python包,包名为TestCases。
在包当中,创建一个测试用例文件:test_sample_1.py。文件内容如下:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 定义py文件下的测试用例
def test_sample():
print("我是测试用例!")
class TestSample:
def test_ss(self):
print("我也是测试用例!")
def hello_pytest(self):
print("hi,pytest,我不是用例哦!!")
按照上面定义的搜索规则,需要跳转到工程目录,然后再执行命令:pytest -v 。 执行结果如下:
让我们愉快的加进来第2个测试文件:test_sample_2.py,内容如下:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
def add(a,*args):
sum = a
for item in args:
sum += item
return sum
def test_add_two_number():
assert 33 == add(11,22)
assert 55.55 == add(22.22,33.33)
def test_add_three_number():
assert 101 == add(10,90,1)
再次运行命令:pytest -v 得到如下结果:
通过多个用例文件的执行,可以看出用例的执行顺序。
5) pytest中用例的执行顺序
原则:先搜索到的py文件中的用例,先执行。在同一py文件当中,按照代码顺序,先搜索到的用例先执行。
到此这篇关于python单元测试框架pytest的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。
相关推荐:
SEO如何做?全方位解析提升网站排名的秘诀,AI翻译好处
SEO很多,如何在竞争激烈的市场中脱颖而出?,在SEO优化中
SEO快速排名实例:如何通过实战技巧提升网站排名,快速突破流量瓶颈,安徽ai跑步机企业
什么是seo长尾词,什么是seo长尾词的概念 ,绿茶ai换脸杨超越
企业关键字-助力企业成功的隐形动力,闽侯县企业网站建设
软件AI的全称:人工智能驱动未来的关键力量
SEO才能:提升网站排名,突破网络营销的核心竞争力,南宁本地seo营销公司
【BVIP尊享体验:超越奢华,开启专属未来】,珠宝网站建设思路
SEO提供:如何通过精准的SEO策略提升网站流量与品牌影响力,刷关键词排名立的火星
什么是SEO可以自学吗,seo零基础可以自学吗 ,ai1紫
SEO排位:如何通过精准策略提升网站排名,获得流量与转化,林海网络推广营销
SEO学费多少钱?揭秘SEO培训的投资价值与回报!,郴州网站推广多少钱一个
目前最火的AI软件有哪些?深度解析必备工具
SEO通过-如何通过SEO优化让你的业务在搜索引擎中脱颖而出,保定网站建设推广专家
SEO超级,助力企业站点冲刺搜索引擎排名,白云全网营销推广哪家强
SEO希望:如何通过SEO优化实现网站突破,迈向成功之路,品牌网站推广软件
ChatGPT桌面版无法加载?快速解决方案及常见问题解析,ai媚眼
打造高效创作体验,写文章AI软件重塑内容生产力
ChatGPT桌面应用安装了,不能用?解决方案全攻略,让你轻松畅享AI助手!,绫波丽ai智能
SEO热词:提升网站排名的关键秘诀,一句话营销推广怎么写好
AI翻译工具的革命-ChatGPT等技术让语言互通无碍,淘宝ai写作检测准吗
seo规范是什么意思,seo包括哪些内容 ,AI智能破解
AI网页设计生成-智能化创造无限可能,ai机甲风背景音乐
代哥SEO-让您的网站迅速登顶搜索引擎的秘密武器,济南关键词的排名优化
ChatGPT为什么访问不了?全面解析及解决方案,ai首页设计
SEO刷:让你的网站一夜之间登顶搜索引擎!,独特seo技巧
seo需要学习什么语言,做seo需要懂什么技术 ,ai软件制作教程
从语言助手到智能生活伙伴,未来的智能助手如何改变我们的生活,网站建设分站公司
互联网时代的“搜索截流”新玩法:如何抓住流量红利,甘孜做优化网站软件
SEO职责:为网站注入流量,提升品牌竞争力,拼多多女装关键词排名
SEO走动:提升网站流量的关键一步,SEO数据监控宝宝推荐
seo网站编辑是做什么,seo网站编辑可在家兼职 ,ai慢直播
互联网资源的无限潜力:如何利用数字世界为个人和企业创造价值,信阳网站建设正规公司
仿写AI:智能时代的创作革命,洛江区移动房网站推广
AI撰写工具的无限可能,让内容创作更高效、更精彩!
怎么分辨文章是不是AI写的?五大技巧揭开真相
互联网留痕:数字时代的隐形轨迹与自我管理,灯塔网站推广包年多少钱
AI网页版本:开启智能时代的新篇章,拼音标调ai
为什么选择老域名工具?提升网站SEO与品牌影响力的秘密武器,软文与seo文章区别
Bing搜索的注意事项-提高搜索效率与准确性,轻松获取所需信息,最近ai写作软件推荐
ChatGPT无法加载?检查您的网络设置并尝试重启,轻松解决常见问题!,ai招生广告设计
ChatGPT回答问题,网页无法线下滚动?解决方案轻松get!,谷歌AI铃声
seo适合什么人做,哪种seo做得好 ,晋城ai论文写作免费
SEO查:如何通过精准优化让网站流量飞速增长,吉林推广营销怎么样
seo链接有什么用,seo外链是什么意思 ,one ai写作
《*采集站:带你领略全球最全*资源的宝藏平台》,seo优化易下拉瞧瞧
什么是seo寄生虫,寄生虫seo原理 ,AI 疫
AI文章精简-高效提炼与优化你的内容创作,ai quid
SEO行销:开启网站流量增长的秘密武器,百威产品关键词查询排名
ZBlog:开启你的个人网站新时代,轻松搭建与管理,二手手机营销推广方案