#!/usr/bin/env bash # init_test_plan.sh — Generate task-level test plan + test case template # # Usage: # bash scripts/test/init_test_plan.sh [target-dir] # # Example: # bash scripts/test/init_test_plan.sh "preflight-host-readiness" internal/provision # # Output: # docs/test-plans/TEST_PLAN_YYYY-MM-DD_.md # docs/test-cases/TEST_CASES_YYYY-MM-DD_.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 [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"