用途:为 Bitlysis 项目编写全面测试,适用于新增单元测试、API 集成测试、Playwright E2E 测试、审查覆盖率、搭建测试夹具或工厂,以及为 LLM 功能编写评测测试。
主要能力与规范:
- 测试理念:测行为而非实现;统一采用 Arrange-Act-Assert(AAA)模式;每个测试聚焦一个断言概念;测试与源文件同目录(feature.ts + feature.test.ts);覆盖空输入、null/undefined、最大值、错误路径等边界情况。
- Vitest(TypeScript/React):使用 describe/it/expect/vi 与 @testing-library/react 的 render、screen、fireEvent,可验证渲染行数、空状态与回调调用。
- pytest(Python/FastAPI):使用 pytest fixture、@pytest.mark.asyncio、@pytest.mark.parametrize 与 httpx.AsyncClient,覆盖成功、未授权与多方法参数化场景。
- 测试工厂与夹具:用 factory 定义 UserFactory、UploadedFileFactory,通过 LazyFunction、Sequence、Faker、SubFactory 生成数据。
- Playwright E2E:覆盖关键用户流程,如登录后上传 CSV 并触发分析,使用 data-testid 定位与超时等待结果。
- 覆盖率要求:TypeScript 运行 vitest run --coverage;Python 运行 pytest tests -q --cov=app --cov-report=term-missing --cov-fail-under=80,目标均大于 80%。
- 测试数据管理:使用工厂或夹具,不硬编码用户 ID 或 UUID;使用独立测试数据库,绝不对生产数据测试;按测试而非按套件准备与清理数据;LLM 测试使用确定性 mock 响应,不调用真实 API。
输出格式:每个被测功能提供单元测试、集成测试、E2E 测试(若为用户可见流程)及覆盖率报告(如被要求)。可通过 @.cursor/.agents/.agents/qa-engineer.md 激活专家。
限制:资料未提供具体安装命令、依赖版本、CI 集成方式或 Bitlysis 产品本身的更多背景,这些内容暂未提供。