feat(utils): add global test runner and helper help

This commit is contained in:
2025-09-12 10:19:47 +08:00
parent 9ff736e11c
commit 6d9993cd9f
14 changed files with 199 additions and 325 deletions

View File

@@ -45,6 +45,8 @@ chmod +x utils/leetcode_helper.sh
# 範例
./utils/leetcode_helper.sh problem 1 two-sum Easy
./utils/leetcode_helper.sh problem 3000 maximum-area-rectangle Medium
# 顯示說明:
./utils/leetcode_helper.sh --help
```
建立完成後的結構(示意):
@@ -62,8 +64,7 @@ problems/NNNN-name/
├── SolutionTests.cs # xUnit 測試
├── TestProject.csproj
├── main_test.go # Go testing
── edge_cases.md
└── run_tests.sh # 一鍵執行 C# 與 Go 測試
── edge_cases.md
```
- 建立月度日誌(依模板生成 `logs/YYYY-MM.md`
@@ -97,8 +98,16 @@ go run main.go
- 執行該題的測試(同時跑 C# 與 Go
```
cd problems/NNNN-name/test
./run_tests.sh
./utils/run_tests.sh NNNN-name [all|csharp|go]
# 也可只給題號:
./utils/run_tests.sh 3025
# 僅跑 C# 或 Go
./utils/run_tests.sh 3025 csharp
./utils/run_tests.sh 3025 go
# 顯示說明:
./utils/run_tests.sh --help
# 列出目前可用題目:
./utils/run_tests.sh --list
```
或分別執行:
@@ -116,7 +125,7 @@ go test -v
- problem根據輸入的題號、名稱與難度建立一個完整題目骨架
- 產生題目 `README.md`(含題目資訊、思路、測試與筆記段落)
- 建立 `csharp/``go/` 目錄及基本程式碼
- 建立 `test/` 目錄,內含 xUnit、Go 測試模板`run_tests.sh`
- 建立 `test/` 目錄,內含 xUnit、Go 測試模板(統一用 `utils/run_tests.sh` 執行)
- 初始化 Go module`go.mod`
- readme掃描 `problems/` 題目數量,輸出簡單統計到終端(可再擴充寫回本檔)
- log`templates/logs-template.md.tmpl` 生成月誌雛形,方便每日記錄與月度回顧
@@ -234,6 +243,28 @@ func TestFindClosest(t *testing.T) {
- 月誌:`templates/logs-template.md.tmpl`
不需修改腳本本身即可客製化模板。
## 工具清單
- `utils/leetcode_helper.sh`: 管理題目與月誌
- 功能:
- `problem <題號> <題目名稱-kebab> <難度>`:建立新題目(產生 `README.md``csharp/``go/``test/` 骨架)
- `log [YYYY-MM]`:建立月度學習日誌(預設本月)
- `readme`:顯示題目數量統計
- `-h|--help`:顯示說明
- 範例:
- `./utils/leetcode_helper.sh problem 3025 find-the-number-of-ways-to-place-people-i Medium`
- `./utils/leetcode_helper.sh log 2025-09`
- `./utils/leetcode_helper.sh --help`
- `utils/run_tests.sh`: 執行指定題目的測試
- 語法:`./utils/run_tests.sh <problem> [all|csharp|go]`
- <problem> 可為:題號(如 `3025`/ 目錄名(如 `3025-find-…`/ 完整路徑(如 `problems/3025-…`
- 參數:`--help` 顯示說明、`--list` 列出現有題目
- 範例:
- `./utils/run_tests.sh 3025`(同時跑 C# 與 Go
- `./utils/run_tests.sh 3025 csharp`(只跑 C#
- `./utils/run_tests.sh --list`
## 未來可擴充方向
- 主 README 自動彙整各題狀態(難度、語言、連結、完成度)