Pytest

标签下的所有文章 9 篇文章
返回所有标签

FastAPI的CI流水线怎么自动测端点,还能让Allure报告美到犯规?

持续集成(CI)是一种软件开发实践,开发人员频繁提交代码,CI工具自动触发构建和测试流程,以尽早发现错误。FastAPI项目通过CI保证类型安全、避免端点失效和一致性验证。GitHub Actions是常用的CI工具,通过Workflow、Job和Step定义CI流程。FastAPI的CI流水线包括代码拉取、Python环境设置、依赖安装、测试和Docker …

如何用GitHub Actions为FastAPI项目打造自动化测试流水线?

持续集成(CI)是一种自动化开发实践,通过自动运行测试和代码检查来验证代码变更的正确性。GitHub Actions 是 GitHub 的自动化工具,用于实现 CI/CD 流程,核心概念包括工作流、事件、作业、步骤和动作。FastAPI 项目通过标准化的项目结构和 pytest 测试用例,结合 GitHub Actions 搭建自动化测试流水线,确保代码质量 …

如何用FastAPI玩转多模块测试与异步任务,让代码不再“闹脾气”?

FastAPI框架在多模块集成测试中,通过pytest的fixture创建临时数据库,确保测试数据隔离,并使用unittest.mock模拟外部依赖,验证模块间交互。异步任务通过BackgroundTasks处理,定时任务则借助APScheduler实现,测试时手动触发任务以验证逻辑。常见报错如422 Validation Error和503 …

如何在FastAPI中玩转“时光倒流”的数据库事务回滚测试?

在 FastAPI 项目中,集成测试通过事务回滚机制确保测试环境的干净性。使用 pytest、SQLAlchemy 和 FastAPI TestClient 组合,实现数据库事务的嵌套控制,测试中的所有数据库操作在用例结束时自动回滚。通过 begin_nested() 创建保存点,确保每个测试用例在独立的事务中执行,避免数据污染。测试案例模拟用户注册和资料修 …

如何在FastAPI中优雅地模拟多模块集成测试?

FastAPI 集成测试通过 pytest、httpx 和 asyncio 工具链模拟多模块交互,重点测试认证、数据库和外部服务。使用 unittest.mock 替换外部依赖,pytest-asyncio 管理异步事务回滚。测试模型涵盖认证、用户服务和支付模块的协同验证。实战案例展示了订单支付链路的测试流程,通过 fixture 隔离第三方支付服务,复用 …

为什么你的FastAPI测试覆盖率总是低得让人想哭?

FastAPI 开发中,测试环境和基础框架的搭建至关重要。使用 pipenv 或 poetry 管理虚拟环境和依赖,项目结构包括应用入口、API 路由、数据模型、数据库连接和配置文件。核心框架代码涉及 SQLAlchemy 配置、Pydantic 配置管理和 FastAPI 入口。测试覆盖率检测工具配置包括 pytest、coverage.py 和 …