Python 测试速查:运行 pytest、使用 mock/patch、参数化、fixtures、异步、覆盖率测试。
Python Testing是一项面向实际任务的技能,主要用于Python QQPytest QQMock.;Fixture QPytest QQ: 参考文献/pytest.md - QQMock – 补丁: 参考文献/mocking.md - 单位test.mock QQFixtures: 参考文献/pytest.md - ^。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Python 测试框架核心用法速查。
pytest # 运行所有测试 pytest -v # 详细输出 pytest test_module.py # 指定文件 pytest -k "login" # 匹配测试名 pytest -x # 失败时停止 pytest -n 4 # 并行执行
def test_addition():
assert 1 + 1 == 2
@pytest.mark.parametrize("a,b,expected", [(1,2,3), (2,3,5)])
def test_add(a, b, expected):
assert add(a, b) == expected
from unittest.mock import Mock, patch
mock_db = Mock()
mock_db.query.return_value = []
@patch('module.function')
def test_with_mock(mock_func):
mock_func.return_value = 42
@pytest.fixture
def database():
db = Database(":memory:")
yield db
db.close()
def test_query(database):
assert database.query("SELECT 1")
pytest --cov=myapp pytest --cov=myapp --cov-report=html
@pytest.mark.slow # 标记慢测试 @pytest.mark.integration # 标记集成测试 @pytest.mark.skip(reason="TODO") @pytest.mark.skipif(sys.version_info < (3, 10))
[pytest]
testpaths = tests
python_files = test_*.py
markers =
slow: marks tests as slow
integration: integration tests
addopts = -v --tb=short
相关专题
热门下载
相关下载
精品课程
共0课时 | 0人学习
共0课时 | 0人学习
共0课时 | 0人学习