测试基建派发计划
前两个 agent 做 Go 后端覆盖率 + 前端组件/composable 测试 本计划做测试基础设施:CI 流水线、覆盖率门禁、集成测试验证、Makefile 完善
当前缺失
| 缺失项 | 说明 |
|---|---|
| CI 前端测试 | ci.yml 没有 vitest 步骤,前端测试只在本地跑 |
| 覆盖率门禁 | 没有最低覆盖率要求,PR 可以降覆盖率 |
| 覆盖率报告 | 没有生成 HTML 覆盖率报告 |
| 集成测试验证 | tests/integration/ 的测试从未在 CI 外验证过编译 |
| Makefile 缺目标 | 缺少 lint、frontend-test、coverage-html 等目标 |
| 前端 lint | 没有 eslint 配置和 CI lint 步骤 |
派发任务
Agent 1: CI 流水线增强
修改文件: .github/workflows/ci.yml
新增 job:
yaml
# ---------- 前端测试 ----------
frontend-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: web/user 测试
run: |
cd web/user
npm install --frozen-lockfile
npx vitest run
- name: web/admin 测试
run: |
cd web/admin
npm install --frozen-lockfile
npx vitest run修改 test job:
- 加覆盖率输出:
go test -coverprofile=coverage.out -covermode=atomic - 加覆盖率门禁脚本:检查总覆盖率不低于阈值
Agent 2: Makefile 完善
修改文件: Makefile
新增目标:
makefile
# 前端测试
test-frontend:
cd web/user && npx vitest run
cd web/admin && npx vitest run
# 全量测试(Go + 前端)
test-all: test test-frontend
# 覆盖率 HTML 报告
coverage-html:
cd services/core && go test -coverprofile=/tmp/core.out ./... && go tool cover -html=/tmp/core.out -o /tmp/core.html
# ... 其他模块
# Go lint(需安装 golangci-lint)
lint:
for d in services/*/; do [ -f "$d/go.mod" ] && (cd "$d" && golangci-lint run ./...); done
# 集成测试(需 Docker)
test-integration:
cd tests/integration && docker compose -f docker-compose.test.yml up -d --wait
sleep 15
go test -tags=integration -count=1 -v ./tests/integration/...
cd tests/integration && docker compose -f docker-compose.test.yml down -vAgent 3: 集成测试验证 + 覆盖率脚本
任务:
验证集成测试编译通过:
bashcd /home/a1/mybilibili && go test -tags=integration -c ./tests/integration/ -o /dev/null创建覆盖率汇总脚本
scripts/coverage.sh:bash#!/bin/bash # 汇总所有模块覆盖率,输出表格 for d in shared/pkg services/core services/search services/ai services/msg-danmaku services/live services/studio services/work services/bili-proxy; do cd $d && go test -coverprofile=/tmp/cov.out ./... 2>&1 | grep "^ok" cd .. done创建覆盖率门禁脚本
scripts/coverage-check.sh:bash#!/bin/bash # 检查总覆盖率不低于阈值(如 70%) THRESHOLD=70 # 解析 go test 输出,检查是否达标
注意事项:
- 不要修改任何测试文件
- 只修改 CI/Makefile/脚本
- 写完后验证:
cd /home/a1/mybilibili && make test-frontend(如果 node_modules 存在) - 返回修改后的文件内容和验证结果