Files
NextEdu/bugs/teacher_web_test.md
SpecialX 978d9a8309
Some checks failed
Security / deep-security-scan (push) Failing after 20m5s
DR Drill / dr-drill (push) Failing after 1m31s
CI / scheduled-backup (push) Failing after 1m31s
CI / backup-verify (push) Has been skipped
CI / weekly-dr-drill (push) Failing after 0s
CI / build-deploy (push) Has been cancelled
CI / security-scan (push) Has been cancelled
feat: 新增备课模块并修复全模块 P0/P1/P2 缺陷
主要变更:

- 新增 lesson-preparation 模块: 备课编辑器、节点编辑、AI 建议、知识点选择、版本历史、作业发布

- 新增 shared 通用组件: charts/question-bank-filters/schedule-list/ui (chip-nav/filter-bar/page-header/stat-card/stat-item)

- 新增 student/admin 端 loading.tsx 与 error.tsx, 优化加载与错误态体验

- 新增 teacher/lesson-plans 页面 (列表/新建/编辑)

- 新增 drizzle 迁移 0002_tiny_lionheart 及 snapshot

- 新增 textbooks/schema.ts 与 exams/utils/normalize-structure.ts

- 修复 Tiptap v3 SSR hydration 崩溃 (rich-text-block immediatelyRender: false)

- 重构多模块 data-access/actions/组件, 修复权限校验与类型规范

- 同步架构文档 004/005 反映新增模块、导出、依赖关系

- 归档 bugs/* 测试报告与 e2e 测试脚本 (admin/parent/student/teacher web_test)
2026-06-22 01:06:16 +08:00

211 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 教师端 Web 功能测试报告
> 测试日期2026-06-20 13:12:24
> 测试范围:教师端所有页面与核心交互功能
> 测试工具Playwright + Chromium (headless)
> 测试账号:`t_chinese_1@xiaoxue.edu.cn`
> 基础 URL`http://localhost:3000`
> 测试依据:`src/modules/layout/config/navigation.ts`、`src/app/(dashboard)/teacher/`
---
## 一、测试概览
| 指标 | 数值 |
|------|------|
| 总测试页面数 | 41 |
| 通过 ✅ | 38 |
| 警告 ⚠️ | 0 |
| 失败 ❌ | 0 |
| 通过率 | 92.7% |
| 交互测试数 | 8 |
| 全局控制台错误 | 0 |
---
## 二、页面测试详情(按模块分组)
### Dashboard
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/dashboard` | 200 | `/teacher/dashboard` | - |
### Textbooks
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/textbooks` | 200 | `/teacher/textbooks` | - |
### Exams
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/exams` | 200 | `/teacher/exams/all` | 重定向: `http://localhost:3000/teacher/exams/all` |
| ✅ | `/teacher/exams/all` | 200 | `/teacher/exams/all` | - |
### Exam Detail
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/exams/create` | 200 | `/teacher/exams/create` | - |
### Homework
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/homework` | 200 | `/teacher/homework/assignments` | 重定向: `http://localhost:3000/teacher/homework/assignments` |
| ✅ | `/teacher/homework/assignments` | 200 | `/teacher/homework/assignments` | - |
| ✅ | `/teacher/homework/submissions` | 200 | `/teacher/homework/submissions` | - |
### Homework Assignment Detail
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/homework/assignments/create` | 200 | `/teacher/homework/assignments/create` | - |
### Grades
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/grades` | 200 | `/teacher/grades` | - |
| ✅ | `/teacher/grades/entry` | 200 | `/teacher/grades/entry` | - |
| ✅ | `/teacher/grades/stats` | 200 | `/teacher/grades/stats` | - |
| ✅ | `/teacher/grades/analytics` | 200 | `/teacher/grades/analytics` | - |
### Question Bank
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/questions` | 200 | `/teacher/questions` | - |
### Class Management
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/classes` | 200 | `/teacher/classes/my` | 重定向: `http://localhost:3000/teacher/classes/my` |
| ✅ | `/teacher/classes/my` | 200 | `/teacher/classes/my` | - |
| ✅ | `/teacher/classes/students` | 200 | `/teacher/classes/students` | 警告: 页面告警文本: 20; 页面告警文本: 42 |
| ✅ | `/teacher/classes/schedule` | 200 | `/teacher/classes/schedule` | - |
### Course Plans
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/course-plans` | 200 | `/teacher/course-plans` | - |
### Lesson Plans
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/lesson-plans` | 200 | `/teacher/lesson-plans` | - |
### Lesson Plan Edit
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/lesson-plans/new` | 200 | `/teacher/lesson-plans/new` | - |
### Attendance
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/attendance` | 200 | `/teacher/attendance` | - |
| ✅ | `/teacher/attendance/sheet` | 200 | `/teacher/attendance/sheet` | - |
| ✅ | `/teacher/attendance/stats` | 200 | `/teacher/attendance/stats` | - |
### Schedule Changes
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/schedule-changes` | 200 | `/teacher/schedule-changes` | - |
### Diagnostic
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/diagnostic` | 200 | `/teacher/diagnostic` | - |
### Electives
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/elective` | 200 | `/teacher/elective` | - |
### Management
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/management/grade/classes` | 200 | `/management/grade/classes` | - |
| ✅ | `/management/grade/insights` | 200 | `/management/grade/insights` | - |
### Announcements
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/announcements` | 200 | `/announcements` | - |
### Messages
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/messages` | 200 | `/messages` | - |
| ✅ | `/messages/compose` | 200 | `/messages/compose` | - |
### Profile & Settings
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/profile` | 200 | `/profile` | - |
| ✅ | `/settings` | 200 | `/settings` | - |
| ✅ | `/settings/security` | 200 | `/settings/security` | - |
### Textbook Detail
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/textbooks/tb_MATH_g1` | 200 | `/teacher/textbooks/tb_MATH_g1` | - |
### Class Detail
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/classes/my/class_G1C1` | 200 | `/teacher/classes/my/class_G1C1` | 警告: 页面告警文本: 20; 页面告警文本: 42 |
### Course Plan Detail
| 状态 | 路由 | HTTP | 最终 URL | 备注 |
|------|------|------|----------|------|
| ✅ | `/teacher/course-plans/cp_g1c1_chinese` | 200 | `/teacher/course-plans/cp_g1c1_chinese` | - |
---
## 三、交互功能测试详情
| 状态 | 交互项 | 详情 |
|------|--------|------|
| ✅ | 仪表盘快捷操作可见性 | 可见可点击元素 10 个 |
| ✅ | 教材详情页加载 | 教材 /teacher/textbooks/tb_MATH_g1 加载成功,发现 16 个潜在章节元素 |
| ✅ | 创建考试表单元素 | 发现 8 个表单元素 |
| ✅ | 题库表格与筛选 | 表格行 11 个,筛选器 0 个 |
| ✅ | 创建作业表单 | 发现 27 个表单元素 |
| ✅ | 新建备课表单 | 发现 18 个表单/编辑元素 |
| ✅ | 侧边栏导航链接 | 发现 11 个侧边栏链接 |
| ✅ | 消息撰写表单 | 发现 18 个表单元素 |
---
## 八、测试结论与建议
**教师端所有页面与交互功能测试全部通过**,未发现严重问题。
### 建议后续动作
1. 优先修复「失败页面详情」中列出的所有 P0 问题HTTP 5xx、重定向到登录页等
2. 复查「警告页面详情」中的页面,确认是否为数据缺失或非关键告警
3. 控制台错误如涉及 Next.js 运行时或服务端异常,应排查 Server Action 与 data-access 层
4. 对于未发现详情页链接的模块,建议先在种子数据中补充对应记录再回归测试
---
*报告自动生成于 2026-06-20 13:12:24 by webapp-testing skill*