用途:为 Keboola Python 组件编写与维护测试,按三级优先级组织:datadir 测试(最高优先级,使用类生产数据目录做功能测试)、单元测试(隔离测试单个函数与方法)、集成测试(mock 响应测试 API 交互)。
主要能力:先阅读 src/component.py 理解组件行为,识别关键路径、边界条件与外部依赖;通过设置 KBC_DATADIR 环境变量指向测试用例目录并运行 Component().run() 验证输入/输出、状态与清单;对数据转换、校验逻辑、配置解析写单元测试;用 unittest.mock 的 patch 与 MagicMock 隔离 API 客户端。
测试用例结构:每个 datadir 用例目录需含 config.json(含 parameters,如 #api_key、endpoint、limit)、in/tables/ 输入 CSV 与 .manifest、in/state.json(增量测试用),以及预期产物 out/tables/output.csv、对应 .manifest 和 out/state.json。覆盖场景包括全量加载、增量加载、空结果、单条与多条记录;错误处理(缺失必填参数、认证失败、限流、网络错误、数据格式错误);边界情况(特殊字符、大数据集、空值、空串、Unicode);状态管理(无状态首次运行、含状态后续运行、状态持久化与更新)。
使用方式:运行测试可用 uv run pytest,指定文件用 uv run pytest tests/test_component.py,覆盖率用 uv run pytest --cov=src,详细输出用 uv run pytest -v。写测试时按测试套件形式给出 datadir 用例与单元测试说明及断言点。
限制与注意:不要测试实现细节,不在测试中使用真实 API 凭据,不写依赖外部服务的测试,不写无断言的测试,记得清理测试输出,避免只测正常路径而跳过错误处理。资料未提供具体收费、平台或价格信息。