Files
sub2api-cn-relay-manager/scripts/test/init_test_plan.sh
phamnazage-jpg 77b7f7f660
Some checks failed
CI / Build & Test (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Release (push) Has been cancelled
feat: harden runtime import and frontend verification workflows
2026-06-04 20:02:36 +08:00

105 lines
2.9 KiB
Bash
Executable File

#!/usr/bin/env bash
# init_test_plan.sh — Generate task-level test plan + test case template
#
# Usage:
# bash scripts/test/init_test_plan.sh <task-name> [target-dir]
#
# Example:
# bash scripts/test/init_test_plan.sh "preflight-host-readiness" internal/provision
#
# Output:
# docs/test-plans/TEST_PLAN_YYYY-MM-DD_<task-name>.md
# docs/test-cases/TEST_CASES_YYYY-MM-DD_<task-name>.md
#
# These are TEMPLATES. Fill in the actual test cases before implementation,
# and mark PASS/FAIL after verification.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
TASK_NAME="${1:?Usage: $0 <task-name> [target-dir]}"
TARGET_DIR="${2:-.}"
DATE_TAG="$(date +%Y-%m-%d)"
PLAN_DIR="${SCRIPT_DIR}/docs/test-plans"
CASE_DIR="${SCRIPT_DIR}/docs/test-cases"
mkdir -p "$PLAN_DIR" "$CASE_DIR"
# ── Test Plan Template ──────────────────────────────────────────────
PLAN_FILE="${PLAN_DIR}/TEST_PLAN_${DATE_TAG}_${TASK_NAME}.md"
cat > "$PLAN_FILE" << EOFTPL
# Test Plan: ${TASK_NAME}
日期: ${DATE_TAG}
目标文件: ${TARGET_DIR}
## 测试目标
<!-- 一句话说明本任务的测试目标 -->
## 范围
- 影响文件: <!-- 列出被修改的文件 -->
- 风险点: <!-- 可能出问题的地方 -->
- 不变区域: <!-- 明确不需要测试的范围 -->
## 验证层级
| 层级 | 验证内容 | 命令 | 通过标准 |
|------|----------|------|----------|
| L1 单测 | | | |
| L2 静态分析 | | | |
| L3 集成测试 | | | |
| L4 构建验证 | | | |
| L5 前端验证 | | | |
| L6 真实环境 | | | |
## 测试用例
见 docs/test-cases/TEST_CASES_${DATE_TAG}_${TASK_NAME}.md
## 回归检查
- [ ] 已有测试不受影响
- [ ] 覆盖率不低于当前基线
EOFTPL
# ── Test Cases Template ──────────────────────────────────────────────
CASE_FILE="${CASE_DIR}/TEST_CASES_${DATE_TAG}_${TASK_NAME}.md"
cat > "$CASE_FILE" << EOFCASE
# Test Cases: ${TASK_NAME}
日期: ${DATE_TAG}
## 用例列表
| ID | 描述 | 输入 | 预期结果 | 实际结果 | 状态 |
|----|------|------|----------|----------|------|
| TC1 | | | | | PENDING |
| TC2 | | | | | PENDING |
| TC3 | | | | | PENDING |
## 边界用例
| ID | 描述 | 输入 | 预期结果 | 实际结果 | 状态 |
|----|------|------|----------|----------|------|
| B1 | | | | | PENDING |
| B2 | | | | | PENDING |
## 异常用例
| ID | 描述 | 输入 | 预期结果 | 实际结果 | 状态 |
|----|------|------|----------|----------|------|
| E1 | | | | | PENDING |
| E2 | | | | | PENDING |
EOFCASE
echo "✅ Test plan: ${PLAN_FILE}"
echo "✅ Test cases: ${CASE_FILE}"
echo ""
echo "下一步:"
echo " 1. 编辑测试计划和用例"
echo " 2. 实现代码"
echo " 3. 按用例逐条验证"
echo " 4. 更新状态为 PASS/FAIL"