pytest--python的一种测试框架--pytest初阶

前言

使用pytest去做测试时我们对文件名的命名其实是有规范的,要用test_开头!!!

一、pytest初阶

python 复制代码
def test_one():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等

这个时候,运行结果为空是因为把他当python代码去运行了,python想运行这个函数最起码是要有个主函数调用的,常识哈。

二、然后想把它当成测试用例去跑有两种方法:

方法1

1、打开Terminal在终端上运行,用pytest关键字接测试用例的文件:

python 复制代码
def test_one():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
复制代码
collected 1 item 意思是收集到一条测试用例,下一句test_one.py后面有一个绿色的点,这意味着该测试通过,下面有1 passed in 0.00s更详细的通过情况。
python 复制代码
def test_one():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等

def test_two():
    expect=1
    actual=2
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
复制代码
文件中出现多个测试用例,有对有错时,可以看到运行结果是一条失败一条通过,在0.03s内。可以看到collected 1 item 下面一条语句后面一个绿点一个红F,进度100%。

这样相对来说比较麻烦,可以看看第二种方法

方法2

第二种方法:windows点左上file进到设置里找到tools-pythonintegratedtools(pyython集成工具)-测试-选中pytest-应用-确定,即可

我们会发现,选中之后函数左边出现了绿色的三角符号,点击运行它就会运行当下这条测试用例。运行失败的还会在下面对运行结果进行分析,如图所示

三、注意

python 复制代码
def test_one():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等

def test_two():
    expect=1
    actual=2
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def three():
    expect=1
    actual=2
    assert expect==actual

添加一个three函数再执行可以发现仍然是一通过一失败,所以说如果测试用例的方法没有用test_这样的格式命名它不会去执行,这是一个规范

相关推荐
Csvn1 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽2 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户556918817534 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱18 小时前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei21 小时前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
aqi001 天前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
Csvn1 天前
`functools.lru_cache` —— 一行代码搞定缓存加速
后端·python
金銀銅鐵2 天前
[Python] 从《千字文》中随机挑选汉字
后端·python
cup112 天前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill