用途:为 Keboola Python 组件添加测试、修复测试并提升覆盖率,属于测试与质量类工具。主要能力按优先级分三层:Datadir 测试是使用 KBC_DATADIR 结构的功能测试,适用于所有组件,是首选方式;单元测试用于转换、校验和配置解析等隔离逻辑;VCR 功能测试用于调用外部 HTTP API 的组件,优先于手写 mock,尤其提取器必需、写入器推荐。选择 VCR 还是 mock:有外部 HTTP 调用时用 VCR(keboola.datadirtest),录制一次真实 API 交互后在 CI 中无凭证确定性重放,比手写 mock 更真实且能发现 API 契约变化;测试纯逻辑、转换或校验代码、或组件无 HTTP 调用(应用类、纯转换)时用 unittest.mock。VCR 工作流:在 pyproject.toml 开发依赖加入 keboola.datadirtest>=2.0.0 并运行 uv sync -U;复制 tests/test_functional.py;阅读 src/component.py、src/configuration.py 与 configSchema.json 后构建 tests/setup/configs.json;对需认证 API 向用户索取真实凭证生成 secrets.json 并确认已在 .gitignore;运行 uv run python -m keboola.datadirtest scaffold [--secrets secrets.json] [--chain-state] 录制;检查 cassette 中未清洗的动态值;更新 .gitignore、Dockerfile(COPY tests/ tests)与 push.yml(使用 python -m pytest);在本地和 Docker 中用 python -m pytest 验证。限制与缺失:资料未提供具体价格、平台支持范围、性能数据或完整代码示例,scaffold 各命令详见 vcr-quickstart.md,常见失败见 vcr-troubleshooting.md。
test-component
测试与质量
更新于 10-15 23:44