- 新增 _calculate_lane_conflicts_v2() 分開返回標籤重疊和線穿框分數 - 修改泳道選擇算法,優先選擇無標籤重疊的泳道 - 兩階段搜尋:優先側別無可用泳道則嘗試另一側 - 增強日誌輸出,顯示標籤範圍和詳細衝突分數 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
1.5 KiB
1.5 KiB
📙 Test Driven Development (TDD)
1. 測試分類與範圍
| 類型 | 工具 | 範圍 |
|---|---|---|
| 單元測試 | pytest | importer、renderer、export 模組 |
| 端對端測試 | Playwright | 前端互動與整體流程 |
| 效能測試 | pytest-benchmark | 渲染與輸出效能 |
2. 單元測試案例
| 編號 | 測試項目 | 驗證重點 |
|---|---|---|
| UT-IMP-01 | 匯入 CSV 欄位解析 | 欄位自動對應與格式容錯 |
| UT-REN-01 | 時間刻度演算法 | 不同時間跨度下刻度精準性 |
| UT-REN-02 | 節點避碰演算法 | 重疊節點之排版與間距合理性 |
| UT-EXP-01 | PDF 輸出完整性 | 字型嵌入與 DPI 驗證 |
3. 端對端測試(E2E)流程
- 匯入測試資料(CSV)。
- 驗證時間軸正確渲染。
- 切換主題並重新渲染。
- 匯出 PNG/PDF 並確認檔案存在與開啟性。
- 驗證畫面快照差異 ≤ 0.5%。
4. 效能與穩定性測試
| 測試項目 | 標準 | 通過條件 |
|---|---|---|
| 100 筆事件 | <1 秒 | 無延遲或崩潰 |
| 300 筆事件 | <3 秒 | FPS ≥ 30 |
| 匯出任務 | <2 秒 | 正確生成檔案 |
5. 測試環境與自動化
| 組件 | 工具 |
|---|---|
| 測試框架 | pytest, Playwright |
| 持續整合 | GitHub Actions |
| 覆蓋率 | coverage.py + htmlcov |
| 報告生成 | Allure / pytest-html |
6. 驗收條件
- 單元測試覆蓋率 ≥ 80%。
- E2E 測試通過率 = 100%。
- 效能達標:渲染與輸出均在 KPI 內。