Python 的 pytest 框架 是一个用于编写和运行自动化测试的第三方库,在 Python 生态中非常流行,主要用于:
pytest 是一个成熟、简单、功能强大的 Python 测试框架,用来:
它的目标是:用更少的代码,写更清晰的测试。
相比 Python 自带的 unittest,pytest 有这些优点:
✅ 语法简单(不需要写类也能测试)
✅ 自动发现测试用例
✅ 强大的断言(直接用 assert)
✅ 丰富的插件生态(如 pytest-html、pytest-xdist)
✅ 支持参数化测试
✅ 支持失败重试、并发执行等
pip install pytest
文件名:test_demo.py
def test_add():
assert 1 + 1 == 2
运行测试:
pytest
✅ pytest 会自动找到以 test_ 开头的文件和函数。
| 类型 | 规则 |
|---|---|
| 测试文件 | test_*.py 或 *_test.py |
| 测试函数 | test_* |
| 测试类 | Test*(不能带 __init__) |
pytest 使用 Python 原生 assert:
def test_example():
assert "hello" in "hello world"
assert 10 > 5
失败时 pytest 会给出清晰的错误信息。
避免写重复代码:
import pytest
@pytest.mark.parametrize("a,b,result", [
(1, 2, 3),
(2, 3, 5),
(5, 5, 10)
])
def test_add(a, b, result):
assert a + b == result
用于准备测试环境(如连接数据库、登录等):
import pytest
@pytest.fixture
def data():
return {"name": "pytest"}
def test_data(data):
assert data["name"] == "pytest"
pytest # 运行所有测试
pytest test_demo.py # 运行指定文件
pytest -v # 详细模式
pytest -k "add" # 按关键字运行
pytest -x # 失败即停止
pytest --html=report.html # 生成 HTML 报告
| 插件 | 作用 |
|---|---|
| pytest-html | 生成 HTML 报告 |
| pytest-xdist | 并发执行 |
| pytest-rerunfailures | 失败重试 |
| allure-pytest | 精美测试报告 |
✅ 后端接口自动化
✅ 数据处理脚本测试
✅ CI/CD 自动化测试
✅ 教学 / 面试 / 企业项目
pytest 是 Python 中最主流、最好用的测试框架,用最少的代码写出最清晰的自动化测试。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。