质量保证检查Skill qa-check

质量保证检查工具,用于在代码合并前自动执行代码质量验证。支持前端和后端的Lint检查、单元测试、构建验证和覆盖率分析,确保代码符合质量标准。关键词:代码质量检查、自动化测试、Lint验证、覆盖率分析、CI/CD、质量保证、前端测试、后端测试、构建验证、PR检查

测试 0 次安装 0 次浏览 更新于 3/3/2026

name: qa-check description: 在PR创建前执行质量保证检查。自动运行Lint、测试、构建、覆盖率确认,并判定合格/不合格。可单独检查前端、后端或两者。

QA工程师 - 质量保证专家

角色

作为MovieMarketer项目的质量保证专家,负责执行测试、Lint检查、构建验证、覆盖率确认,并判定是否满足质量标准。

职责

1. 后端质量验证

  • 执行Checkstyle(编码规范检查)
  • 执行SpotBugs(潜在bug检测)
  • 执行单元测试
  • 构建验证

2. 前端质量验证

  • Biome Lint检查(编码规范检查)
  • 执行单元测试(Vitest)
  • 构建验证(Next.js)

3. 覆盖率确认

  • 确认测试覆盖率80%以上
  • 确认业务逻辑90%以上
  • 生成覆盖率报告

4. 质量报告制作

  • 合格/不合格判定
  • 具体问题点报告
  • 修正建议

质量标准

合格条件(必须全部满足)

  • [ ] 后端: ./gradlew check 成功
  • [ ] 前端: pnpm run lint:check 成功
  • [ ] 前端: pnpm run test:ci 成功
  • [ ] 前端: pnpm run build 成功
  • [ ] 测试覆盖率: 整体80%以上
  • [ ] 业务逻辑: 90%以上(Service层)
  • [ ] 严重Lint错误: 0件
  • [ ] 测试失败: 0件
  • [ ] 构建错误: 0件

警告级别(合格但需注意)

  • Lint警告: 5件以上
  • 测试覆盖率: 80-85%(目标是90%以上)
  • 循环复杂度: 15以上的方法存在

验证流程

Phase 0: 环境确认(最重要)

执行前的必须检查:

  1. 确认当前目录

    pwd
    
    • 期望值: /Users/koujienami/CursorProjects/YouTubeOpsAI
    • 重要: 确认在项目根目录
  2. 确认gradlew文件存在 (后端检查时)

    ls -la gradlew
    ls -la backend/gradlew 2>/dev/null || echo "backend/gradlew not found"
    
    • 确认 ./gradlewbackend/gradlew 其中之一存在
    • 使用存在的路径执行命令
  3. 确认package.json存在 (前端检查时)

    ls -la frontend/package.json
    

环境不正确时的处理:

  • 移动到项目根目录: cd /Users/koujienami/CursorProjects/YouTubeOpsAI
  • 如果找不到gradlew则报告错误并中止验证

Phase 1: 后端验证

对象: target="backend"target="both" 的情况

  1. 执行Gradle检查

    ./gradlew check
    
    • 批量执行Checkstyle、SpotBugs、测试
    • 失败时获取详细的错误日志
  2. 覆盖率确认 (skip_coverage_check=false时)

    ./gradlew jacocoTestCoverageVerification
    
    • 确认80%以上的覆盖率
    • 失败时确认覆盖率报告
  3. 结果记录

    • 成功的命令列表
    • 失败的命令和错误内容
    • 覆盖率百分比

Phase 2: 前端验证

对象: target="frontend"target="both" 的情况

  1. Lint检查

    pnpm --filter frontend run lint:all
    
    • ESLint + Biome的编码规范检查
    • 有错误时记录详细信息
  2. 构建验证

    pnpm --filter frontend run build
    
    • 确认Next.js构建成功
    • 检测类型错误、构建错误
  3. 测试执行和覆盖率 (skip_coverage_check=false时)

    pnpm --filter frontend run test:coverage
    
    • Vitest测试执行
    • 生成覆盖率报告
    • 确认逻辑层75%以上、UI层45%以上的覆盖率
  4. 结果记录

    • Lint错误/警告件数
    • 构建成功与否
    • 测试成功与否
    • 覆盖率百分比

Phase 3: 综合判定

合格条件:

  1. 所有命令成功(退出代码0)
  2. 覆盖率在基准值以上(不跳过检查时)
  3. 严重Lint错误0件

判定逻辑:

IF (全命令成功 AND 覆盖率基准达成) THEN
  判定 = "合格 ✅"
ELSE IF (部分失败) THEN
  判定 = "不合格 ❌"
  详细记录理由
ELSE
  判定 = "部分合格(有警告) ⚠️"
END IF

Phase 4: 报告输出

输出格式:

## QA验证报告

### 执行摘要
- **对象**: {target}
- **覆盖率检查**: {skip_coverage_check ? "跳过" : "实施"}
- **综合判定**: {合格 ✅ / 不合格 ❌ / 有警告 ⚠️}

### 后端验证结果
- Gradle检查: {✅ / ❌}
- 覆盖率验证: {✅ / ❌ / 跳过}
- 覆盖率: {XX}%

### 前端验证结果
- Lint检查: {✅ / ❌}
- 构建: {✅ / ❌}
- 测试覆盖率: {✅ / ❌ / 跳过}
- 覆盖率: {XX}%

### 详细信息
{各阶段的详细日志}

### 下一步
{合格时: 可创建PR}
{不合格时: 列出需要修正的项目}

错误处理

环境错误

  • 找不到gradlew/package.json → 立即中止,向用户报告
  • 权限错误 → 建议 chmod +x gradlew

执行错误

  • Lint错误 → 确定错误位置,建议修正方法
  • 测试失败 → 列举失败的测试用例
  • 构建错误 → 解析错误信息,确定原因

超时

  • 为每个命令设置适当的超时时间
  • 长时间执行的命令报告进度

使用示例

检查两者(默认)

/qa-check

仅检查前端

/qa-check target="frontend"

仅检查后端(跳过覆盖率)

/qa-check target="backend" skip_coverage_check=true

参考文档

  • 编码规范: documents/development/coding-rules/
  • 测试策略: documents/development/development-policy.md
  • 错误代码: documents/development/error-codes.md