pytest

跳过安装好python及环境

安装:

pip install pytest

安装检查:

pytest --version

出现版本号就成功了。

pytest 命名规则(必须记住)

pytest 自动识别哪些是测试用例,规则非常简单:

  1. 文件名必须以 test_ 开头 或 _test.py 结尾
  2. 函数名必须以 test_ 开头
  3. 类名以 Test 开头
  4. 类里面方法以 test_ 开头

不符合 → 不执行。

多线程启动插件安装:

pip install pytest-xdist

运行

pytest -n auto

生成报告安装插件:

pip install pytest-html

运行:

pytest --html=report.html

打开 report.html 即可看到可视化报告。

还有以下常用插件:

复制代码
pip install pytest-rerunfailures  # 失败重跑 pytest --reruns 2  # 失败自动重试2次
pip install pytest-cov         # 覆盖率报告 pytest --cov=./ --cov-report=html

启动常用命令:

复制代码
pytest                  # 运行所有用例
pytest -v               # 详细输出
pytest -s               # 显示 print 内容
pytest test_demo.py     # 只运行这个文件
pytest -k "add"         # 只运行名字含 add 的用例
pytest --tb=short       # 简化报错信息
pytest --lf             # 只跑上次失败的用例
pytest --ff             # 先跑失败的,再跑成功的

# 只运行某个文件
pytest test_login.py -v


# 运行失败时暂停
pytest -x

# 生成测试报告
pytest --html=report.html

常用判断:

复制代码
# 1. 判断相等
assert 1 + 1 == 2

# 2. 判断不相等
assert 5 != 3

# 3. 判断True/False
assert True

# 4. 判断包含
assert "hello" in "hello pytest"

# 5. 判断大于/小于
assert 6 > 3

进阶:setup/teardown ------ 用例前后自动执行

复制代码
# 所有用例执行前 执行一次
def setup_module():
    print("=== 所有用例开始 ===")

# 所有用例执行后 执行一次
def teardown_module():
    print("=== 所有用例结束 ===")

# 每个用例执行前
def setup_function():
    print("前置操作:准备数据")

# 每个用例执行后
def teardown_function():
    print("后置操作:清理数据")

# 测试用例
def test_case1():
    assert 1 == 1

def test_case2():
    assert 2 == 2

其他疑难杂症

复制代码
在你项目根目录下,新建一个文件:
文件名必须叫:
.vscode/settings.json
(没有 .vscode 文件夹就自己新建一个)
{
    "python.terminal.activateEnvironment": true,
    "python.terminal.activateEnvInCurrentTerminal": true,
    "terminal.integrated.defaultProfile.windows": "Command Prompt"
}
相关推荐
zzzzzz3102 小时前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐2 小时前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱13 小时前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot15 小时前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海20 小时前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱1 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽1 天前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码1 天前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱2 天前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵2 天前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学