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"
}
相关推荐
我的xiaodoujiao4 小时前
Django 基础知识详细图文教程 1-Django 介绍
后端·python·学习·测试工具·django
撩得Android一次心动4 小时前
Kotlin 语言【知识点整理2】
android·开发语言·kotlin
不会就选b4 小时前
Linux之线程池(一)
java·开发语言
IT毕设实战小研4 小时前
基于大数据的二手车数据分析与预测
java·大数据·后端·爬虫·python·算法·课程设计
Allen_LVyingbo4 小时前
医疗AI可扩展网格信息系统中网格计算技术的智能优化
大数据·人工智能·python·算法·机器学习·django·健康医疗
MNLoser4 小时前
AI agent开发——LangGraph接入持久化
linux·人工智能·windows·python
牛油果子哥q4 小时前
C++序列式容器深度精讲:vector/list/deque底层实现、扩容原理、迭代器失效、性能对比、工程选型避坑
开发语言·c++·list
渡我白衣4 小时前
Acceptor模块的设计与实现
java·linux·服务器·开发语言·网络·c++·人工智能
练习两年半的攻城狮4 小时前
RAG 系统中 Excel/表格数据的正确处理方式
python·llamaindex
苏灿烤鱼4 小时前
九个编码 Agent 共用免费额度,本地代理是路由还是绕开?
python·agent·claude