fix(assets): 重命名备案图标为英文名避免编码问题
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
@@ -46,7 +46,7 @@ export function Footer() {
|
||||
<li key={item.id}>
|
||||
<Link
|
||||
href={item.href}
|
||||
className="text-[#3D3D3D] hover:text-[#C41E3A] transition-colors duration-200 inline-block hover:translate-x-1 transition-transform"
|
||||
className="text-[#3D3D3D] hover:text-[#C41E3A] transition-all duration-200 inline-block hover:translate-x-1"
|
||||
>
|
||||
{item.label}
|
||||
</Link>
|
||||
@@ -58,22 +58,22 @@ export function Footer() {
|
||||
<h3 className="font-semibold text-lg mb-4 text-[#1C1C1C]">服务项目</h3>
|
||||
<ul className="space-y-2.5">
|
||||
<li>
|
||||
<Link href="/services/software" className="text-[#3D3D3D] hover:text-[#C41E3A] transition-colors duration-200 inline-block hover:translate-x-1 transition-transform">
|
||||
<Link href="/services/software" className="text-[#3D3D3D] hover:text-[#C41E3A] transition-all duration-200 inline-block hover:translate-x-1">
|
||||
软件开发
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/cloud" className="text-[#3D3D3D] hover:text-[#C41E3A] transition-colors duration-200 inline-block hover:translate-x-1 transition-transform">
|
||||
<Link href="/services/cloud" className="text-[#3D3D3D] hover:text-[#C41E3A] transition-all duration-200 inline-block hover:translate-x-1">
|
||||
云服务
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/data" className="text-[#3D3D3D] hover:text-[#C41E3A] transition-colors duration-200 inline-block hover:translate-x-1 transition-transform">
|
||||
<Link href="/services/data" className="text-[#3D3D3D] hover:text-[#C41E3A] transition-all duration-200 inline-block hover:translate-x-1">
|
||||
数据分析
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/services/security" className="text-[#3D3D3D] hover:text-[#C41E3A] transition-colors duration-200 inline-block hover:translate-x-1 transition-transform">
|
||||
<Link href="/services/security" className="text-[#3D3D3D] hover:text-[#C41E3A] transition-all duration-200 inline-block hover:translate-x-1">
|
||||
信息安全
|
||||
</Link>
|
||||
</li>
|
||||
@@ -85,11 +85,11 @@ export function Footer() {
|
||||
<h3 className="font-semibold text-lg mb-6 text-[#1C1C1C]">联系方式</h3>
|
||||
<ul className="space-y-4">
|
||||
<li className="flex items-start gap-3">
|
||||
<MapPin className="w-5 h-5 text-[#C41E3A] mt-0.5 flex-shrink-0" />
|
||||
<MapPin className="w-5 h-5 text-[#C41E3A] mt-0.5 shrink-0" />
|
||||
<span className="text-[#3D3D3D]">{COMPANY_INFO.address}</span>
|
||||
</li>
|
||||
<li className="flex items-center gap-3">
|
||||
<Mail className="w-5 h-5 text-[#C41E3A] flex-shrink-0" />
|
||||
<Mail className="w-5 h-5 text-[#C41E3A] shrink-0" />
|
||||
<span className="text-[#3D3D3D]">{COMPANY_INFO.email}</span>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -143,7 +143,7 @@ export function Footer() {
|
||||
className="hover:text-[#C41E3A] transition-colors duration-200 inline-flex items-center gap-1"
|
||||
>
|
||||
<Image
|
||||
src="/images/备案图标.png"
|
||||
src="/images/beian-icon.png"
|
||||
alt="公安备案"
|
||||
width={14}
|
||||
height={14}
|
||||
|
||||
-339
@@ -1,339 +0,0 @@
|
||||
# Task Plan: 测试覆盖率提升与质量保障迭代
|
||||
|
||||
## Goal
|
||||
基于测试覆盖率评估结果,将整体测试覆盖率从85%提升到90%以上,重点补充核心业务流程的端到端测试,确保产品质量和用户体验。
|
||||
|
||||
## Context
|
||||
- **项目类型**: Next.js 16 + React 19 企业官网项目
|
||||
- **当前测试覆盖率**: 约85%
|
||||
- **目标测试覆盖率**: 90%以上
|
||||
- **主要测试框架**: Playwright E2E测试 + Jest单元测试
|
||||
- **测试策略**: 分层测试(快速层、标准层、深度层)
|
||||
|
||||
## Current Issues Identified
|
||||
|
||||
### 1. 联系表单测试不完整
|
||||
- **当前覆盖率**: 71.4%
|
||||
- **主要遗漏**: 实际邮件发送验证、完整提交流程
|
||||
- **影响**: 无法验证核心业务功能的端到端可用性
|
||||
- **优先级**: 高
|
||||
|
||||
### 2. 详情页深度测试缺失
|
||||
- **当前状态**: 部分测试被跳过
|
||||
- **主要遗漏**: 案例详情、新闻详情、产品详情的完整交互
|
||||
- **影响**: 详情页功能验证不够充分
|
||||
- **优先级**: 高
|
||||
|
||||
### 3. 富文本编辑器高级功能未覆盖
|
||||
- **当前覆盖率**: 80%
|
||||
- **主要遗漏**: 图片上传、表格插入、代码块、引用等功能
|
||||
- **影响**: 内容管理功能验证不完整
|
||||
- **优先级**: 中
|
||||
|
||||
### 4. 配置管理边界条件测试不足
|
||||
- **当前状态**: 基础功能已覆盖
|
||||
- **主要遗漏**: 并发配置、极端值测试
|
||||
- **影响**: 配置系统的稳定性验证不足
|
||||
- **优先级**: 中
|
||||
|
||||
### 5. 视觉回归测试覆盖不全面
|
||||
- **当前状态**: 仅有联系页面和首页的视觉测试
|
||||
- **主要遗漏**: 所有主要页面的视觉一致性验证
|
||||
- **影响**: UI变更可能未被及时发现
|
||||
- **优先级**: 中
|
||||
|
||||
## Phases
|
||||
|
||||
### Phase 1: 联系表单测试完善
|
||||
**Status:** `pending`
|
||||
**Goal:** 完成联系表单的完整端到端测试,达到100%覆盖率
|
||||
**Steps:**
|
||||
- [ ] 分析当前联系表单测试的跳过原因
|
||||
- [ ] 配置测试邮件服务环境
|
||||
- [ ] 启用跳过的表单提交测试
|
||||
- [ ] 添加邮件发送验证测试
|
||||
- [ ] 添加完整用户提交流程测试
|
||||
- [ ] 验证表单错误处理和用户反馈
|
||||
- [ ] 运行测试确保所有用例通过
|
||||
|
||||
**Files to Modify:**
|
||||
- e2e/src/tests/contact-form.spec.ts
|
||||
- e2e/.env.example
|
||||
- e2e/playwright.config.ts
|
||||
|
||||
**Expected Outcome:**
|
||||
- 联系表单测试覆盖率达到100%
|
||||
- 所有跳过的测试用例启用
|
||||
- 完整的用户提交流程得到验证
|
||||
|
||||
**Errors Encountered:**
|
||||
- 待记录
|
||||
|
||||
### Phase 2: 详情页深度测试补充
|
||||
**Status:** `pending`
|
||||
**Goal:** 为所有详情页添加完整的交互测试,确保用户体验
|
||||
**Steps:**
|
||||
- [ ] 分析现有详情页测试覆盖情况
|
||||
- [ ] 创建案例详情页完整测试
|
||||
- [ ] 创建新闻详情页完整测试
|
||||
- [ ] 创建产品详情页完整测试
|
||||
- [ ] 添加详情页导航测试
|
||||
- [ ] 添加详情页内容验证测试
|
||||
- [ ] 添加详情页相关内容推荐测试
|
||||
- [ ] 运行测试确保所有用例通过
|
||||
|
||||
**Files to Create:**
|
||||
- e2e/src/tests/detail-pages/case-detail.spec.ts
|
||||
- e2e/src/tests/detail-pages/news-detail.spec.ts
|
||||
- e2e/src/tests/detail-pages/product-detail.spec.ts
|
||||
|
||||
**Expected Outcome:**
|
||||
- 所有详情页都有完整的E2E测试覆盖
|
||||
- 详情页的用户交互流程得到验证
|
||||
- 详情页的导航和内容推荐功能正常
|
||||
|
||||
**Errors Encountered:**
|
||||
- 待记录
|
||||
|
||||
### Phase 3: 富文本编辑器高级功能测试
|
||||
**Status:** `pending`
|
||||
**Goal:** 补充富文本编辑器的高级功能测试,提升到95%覆盖率
|
||||
**Steps:**
|
||||
- [ ] 分析富文本编辑器的功能列表
|
||||
- [ ] 添加图片上传功能测试
|
||||
- [ ] 添加表格插入功能测试
|
||||
- [ ] 添加代码块功能测试
|
||||
- [ ] 添加引用功能测试
|
||||
- [ ] 添加链接插入功能测试
|
||||
- [ ] 添加列表功能测试
|
||||
- [ ] 添加格式化工具测试
|
||||
- [ ] 运行测试确保所有用例通过
|
||||
|
||||
**Files to Modify:**
|
||||
- e2e/src/tests/admin/rich-text-editor.spec.ts
|
||||
|
||||
**Expected Outcome:**
|
||||
- 富文本编辑器测试覆盖率达到95%
|
||||
- 所有高级功能都得到验证
|
||||
- 内容管理功能完整可用
|
||||
|
||||
**Errors Encountered:**
|
||||
- 待记录
|
||||
|
||||
### Phase 4: 配置管理边界条件测试
|
||||
**Status:** `pending`
|
||||
**Goal:** 添加配置管理的边界条件和异常场景测试
|
||||
**Steps:**
|
||||
- [ ] 分析配置管理的边界条件
|
||||
- [ ] 添加并发配置测试
|
||||
- [ ] 添加极端值测试
|
||||
- [ ] 添加配置冲突测试
|
||||
- [ ] 添加配置回滚测试
|
||||
- [ ] 添加配置验证测试
|
||||
- [ ] 运行测试确保所有用例通过
|
||||
|
||||
**Files to Create:**
|
||||
- e2e/src/tests/config-linkage/config-boundary.spec.ts
|
||||
|
||||
**Expected Outcome:**
|
||||
- 配置系统的稳定性得到充分验证
|
||||
- 边界条件和异常场景都有测试覆盖
|
||||
- 配置管理的错误处理完善
|
||||
|
||||
**Errors Encountered:**
|
||||
- 待记录
|
||||
|
||||
### Phase 5: 视觉回归测试扩展
|
||||
**Status:** `pending`
|
||||
**Goal:** 为所有主要页面添加视觉回归测试,确保UI一致性
|
||||
**Steps:**
|
||||
- [ ] 分析需要视觉测试的页面列表
|
||||
- [ ] 创建首页视觉回归测试
|
||||
- [ ] 创建关于页视觉回归测试
|
||||
- [ ] 创建案例页视觉回归测试
|
||||
- [ ] 创建服务页视觉回归测试
|
||||
- [ ] 创建产品页视觉回归测试
|
||||
- [ ] 创建新闻页视觉回归测试
|
||||
- [ ] 创建管理后台视觉回归测试
|
||||
- [ ] 配置视觉测试基准
|
||||
- [ ] 集成到CI/CD流程
|
||||
|
||||
**Files to Create:**
|
||||
- e2e/src/tests/visual/home-page.visual.spec.ts
|
||||
- e2e/src/tests/visual/about-page.visual.spec.ts
|
||||
- e2e/src/tests/visual/cases-page.visual.spec.ts
|
||||
- e2e/src/tests/visual/services-page.visual.spec.ts
|
||||
- e2e/src/tests/visual/products-page.visual.spec.ts
|
||||
- e2e/src/tests/visual/news-page.visual.spec.ts
|
||||
- e2e/src/tests/visual/admin-pages.visual.spec.ts
|
||||
|
||||
**Expected Outcome:**
|
||||
- 所有主要页面都有视觉回归测试
|
||||
- UI变更能够被及时发现
|
||||
- 视觉一致性得到保障
|
||||
|
||||
**Errors Encountered:**
|
||||
- 待记录
|
||||
|
||||
### Phase 6: 测试覆盖率验证与优化
|
||||
**Status:** `pending`
|
||||
**Goal:** 验证整体测试覆盖率达到90%以上,优化测试执行效率
|
||||
**Steps:**
|
||||
- [ ] 运行完整的测试套件
|
||||
- [ ] 生成测试覆盖率报告
|
||||
- [ ] 分析未覆盖的代码区域
|
||||
- [ ] 补充遗漏的测试用例
|
||||
- [ ] 优化测试执行时间
|
||||
- [ ] 优化测试数据管理
|
||||
- [ ] 更新测试文档
|
||||
|
||||
**Files to Modify:**
|
||||
- e2e/src/config/test-tiers.ts
|
||||
- e2e/package.json
|
||||
- docs/testing/TESTING_REPORT.md
|
||||
|
||||
**Expected Outcome:**
|
||||
- 整体测试覆盖率达到90%以上
|
||||
- 测试执行效率得到优化
|
||||
- 测试文档完整准确
|
||||
|
||||
**Errors Encountered:**
|
||||
- 待记录
|
||||
|
||||
### Phase 7: 质量门禁强化
|
||||
**Status:** `pending`
|
||||
**Goal:** 强化质量门禁,确保代码质量持续提升
|
||||
**Steps:**
|
||||
- [ ] 分析当前质量门禁配置
|
||||
- [ ] 提升测试覆盖率阈值到90%
|
||||
- [ ] 添加E2E测试通过率要求
|
||||
- [ ] 添加性能测试阈值
|
||||
- [ ] 添加安全测试要求
|
||||
- [ ] 添加可访问性测试要求
|
||||
- [ ] 更新CI/CD配置
|
||||
- [ ] 验证质量门禁正常工作
|
||||
|
||||
**Files to Modify:**
|
||||
- config/ci/quality-gate.yml
|
||||
- jest.config.js
|
||||
- .woodpecker.yml
|
||||
- docs/development/quality-gates.md
|
||||
|
||||
**Expected Outcome:**
|
||||
- 质量门禁更加严格和全面
|
||||
- 代码质量持续提升
|
||||
- CI/CD流程更加完善
|
||||
|
||||
**Errors Encountered:**
|
||||
- 待记录
|
||||
|
||||
### Phase 8: 文档更新与知识沉淀
|
||||
**Status:** `pending`
|
||||
**Goal:** 更新测试相关文档,沉淀测试最佳实践
|
||||
**Steps:**
|
||||
- [ ] 更新测试覆盖率报告
|
||||
- [ ] 创建测试最佳实践文档
|
||||
- [ ] 更新测试策略文档
|
||||
- [ ] 创建测试维护指南
|
||||
- [ ] 更新项目README
|
||||
- [ ] 创建测试故障排查指南
|
||||
- [ ] 沉淀测试经验和教训
|
||||
|
||||
**Files to Create:**
|
||||
- docs/testing/TESTING_COVERAGE_REPORT.md
|
||||
- docs/testing/TESTING_BEST_PRACTICES.md
|
||||
- docs/testing/TESTING_MAINTENANCE_GUIDE.md
|
||||
- docs/testing/TESTING_TROUBLESHOOTING.md
|
||||
|
||||
**Files to Modify:**
|
||||
- docs/testing/TESTING_REPORT.md
|
||||
- README.md
|
||||
- docs/README.md
|
||||
|
||||
**Expected Outcome:**
|
||||
- 测试文档完整准确
|
||||
- 测试最佳实践得到沉淀
|
||||
- 团队成员能够快速上手测试工作
|
||||
|
||||
**Errors Encountered:**
|
||||
- 待记录
|
||||
|
||||
## Success Criteria
|
||||
|
||||
### 测试覆盖率目标
|
||||
- **整体覆盖率**: ≥90%
|
||||
- **联系表单**: 100%
|
||||
- **详情页**: 100%
|
||||
- **富文本编辑器**: ≥95%
|
||||
- **配置管理**: ≥90%
|
||||
- **视觉回归**: 所有主要页面
|
||||
|
||||
### 质量指标
|
||||
- **E2E测试通过率**: ≥95%
|
||||
- **测试执行时间**: 快速层<5分钟,标准层<30分钟
|
||||
- **测试稳定性**: ≥90%
|
||||
- **代码覆盖率**: ≥70%(单元测试)
|
||||
|
||||
### 文档完整性
|
||||
- **测试文档**: 100%完整
|
||||
- **测试报告**: 及时更新
|
||||
- **最佳实践**: 沉淀完整
|
||||
- **故障排查**: 指南清晰
|
||||
|
||||
## Risk Assessment
|
||||
|
||||
### 高风险
|
||||
- **联系表单测试配置**: 需要配置邮件服务,可能影响现有环境
|
||||
- **视觉回归测试**: 首次建立基准,可能需要大量调整
|
||||
|
||||
### 中风险
|
||||
- **详情页测试**: 可能发现现有功能缺陷,需要修复时间
|
||||
- **富文本编辑器测试**: 高级功能可能存在兼容性问题
|
||||
|
||||
### 低风险
|
||||
- **配置管理测试**: 主要是补充边界条件测试
|
||||
- **文档更新**: 不影响现有功能
|
||||
|
||||
## Mitigation Strategies
|
||||
|
||||
1. **联系表单测试**: 使用测试邮件服务,不影响生产环境
|
||||
2. **视觉回归测试**: 逐步建立基准,分阶段验证
|
||||
3. **详情页测试**: 预留修复时间,优先级排序处理
|
||||
4. **富文本编辑器测试**: 充分测试兼容性,准备降级方案
|
||||
|
||||
## Timeline Estimate
|
||||
|
||||
- Phase 1: 2小时(联系表单测试完善)
|
||||
- Phase 2: 3小时(详情页深度测试补充)
|
||||
- Phase 3: 2小时(富文本编辑器高级功能测试)
|
||||
- Phase 4: 1.5小时(配置管理边界条件测试)
|
||||
- Phase 5: 2.5小时(视觉回归测试扩展)
|
||||
- Phase 6: 2小时(测试覆盖率验证与优化)
|
||||
- Phase 7: 1.5小时(质量门禁强化)
|
||||
- Phase 8: 1.5小时(文档更新与知识沉淀)
|
||||
|
||||
**Total: ~16小时(约2个工作日)**
|
||||
|
||||
## Dependencies
|
||||
|
||||
- Phase 2 依赖 Phase 1 完成(确保测试环境稳定)
|
||||
- Phase 3 依赖 Phase 2 完成(确保页面功能正常)
|
||||
- Phase 5 依赖 Phase 2 完成(基于详情页进行视觉测试)
|
||||
- Phase 6 依赖 Phase 1-5 完成(需要所有测试完成)
|
||||
- Phase 7 依赖 Phase 6 完成(基于覆盖率结果)
|
||||
- Phase 8 依赖 Phase 7 完成(基于最终质量门禁)
|
||||
|
||||
## Notes
|
||||
|
||||
- 所有测试需要基于真实的业务场景
|
||||
- 测试数据需要覆盖边界条件
|
||||
- 测试用例需要定期review和更新
|
||||
- 测试结果需要及时分析和反馈
|
||||
- 遇到问题需要及时记录和调整计划
|
||||
|
||||
## Next Actions
|
||||
|
||||
1. 立即开始 Phase 1:联系表单测试完善
|
||||
2. 依次完成各个阶段的测试补充
|
||||
3. 持续监控测试覆盖率和质量指标
|
||||
4. 及时调整计划以适应实际情况
|
||||
Reference in New Issue
Block a user