1. Python 执行 Pytest 的核心价值
在自动化测试领域,Pytest 已经成为 Python 生态中最主流的测试框架之一。相比传统的 unittest,Pytest 提供了更简洁的语法、更强大的功能和更灵活的扩展性。而通过 Python 代码直接调用 Pytest 的方式,则为测试执行带来了更多可能性。
这种方式的独特优势在于:
- 可以与现有 Python 项目无缝集成
- 能够灵活控制测试流程和参数
- 便于与 CI/CD 工具(如 Jenkins)深度整合
- 支持动态生成测试用例和测试数据
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 基础执行方式详解
2.1 使用 main 函数执行
最基础的方式是通过 pytest.main() 函数执行测试。这个方式的核心在于:
python复制if __name__ == '__main__':
pytest.main()
这段代码有几个关键点需要注意:
if __name__ == '__main__':是 Python 的标准入口写法,确保代码在被直接运行时才会执行pytest.main()会搜索当前目录及其子目录下所有符合命名规则(test_*.py 或 *_test.py)的测试文件- 默认会执行这些文件中所有以 test_ 开头的函数或方法
提示:在实际项目中,建议将这段代码放在项目的根目录下的一个专门文件(如 run_tests.py)中,这样可以从统一入口执行所有测试。
2.2 带参数执行
Pytest 支持丰富的命令行参数,这些参数也可以通过列表形式传递给 main 函数:
python复制pytest.main(['-v', '--tb=short', 'tests/'])
常用参数包括:
-v:显示详细输出-s:显示 print 输出(默认被捕获)-k EXPRESSION:只运行名称匹配表达式的测试-m MARKER:只运行特定标记的测试--tb=style:设置错误回溯显示方式
3. 高级执行技巧
3.1 选择性执行测试
在实际项目中,我们经常需要只执行部分测试用例:
python复制# 执行特定文件中的特定测试
pytest
