scense/sql/sd_test_cases.sql
2026-08-29 16:15:32 +08:00

81 lines
5.5 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================
-- 元景项目-初始迭代 scense 库测试用例域建表 DDL
-- 修复 Bug [e2Lck6zIRCXB5g7_HPZn0]
-- 环境根因sd_test_cases 用例库不可达list_cases 返回字段全空),
-- scense 库无该表。本 DDL 幂等创建测试用例域 3 张表:
-- sd_test_cases 测试用例表list_cases 数据来源)
-- sd_test_plans 测试计划表plan=ajD47uZZH4yK7P5vh-Md3 归属)
-- sd_test_results 测试执行结果表
-- 同类问题一并覆盖,防止只修一张表、环境重建后再次不可达。
-- 执行方式:部署时由 scripts/init_test_db.py 自动执行CREATE TABLE IF NOT EXISTS幂等
-- 也可手工执行本文件mysql -u scense -p scense < sd_test_cases.sql
-- ============================================================
-- ---------- sd_test_cases 测试用例表 ----------
CREATE TABLE IF NOT EXISTS `sd_test_cases` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
`case_id` VARCHAR(64) NOT NULL COMMENT '用例编码(业务唯一,如 TC-0001',
`title` VARCHAR(255) NOT NULL COMMENT '用例标题',
`description` TEXT NULL COMMENT '用例描述',
`module` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '所属模块world/scene/entity/script_engine/world_snapshot/world_sync',
`plan_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '所属测试计划IDsd_test_plans.plan_id',
`priority` VARCHAR(16) NOT NULL DEFAULT 'P2' COMMENT '优先级P0=最高/P1=高/P2=中/P3=低',
`preconditions` TEXT NULL COMMENT '前置条件',
`steps` TEXT NULL COMMENT '测试步骤(多行文本)',
`expected_result` TEXT NULL COMMENT '预期结果',
`actual_result` TEXT NULL COMMENT '实际结果(执行后回填)',
`status` VARCHAR(16) NOT NULL DEFAULT 'draft' COMMENT '用例状态draft/active/closed字典 sd_test_case_status',
`execute_status` VARCHAR(16) NOT NULL DEFAULT 'not_run' COMMENT '执行状态not_run/pass/fail/blocked字典 sd_test_exec_status',
`created_by` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人',
`updated_by` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '更新人',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_case_id` (`case_id`),
KEY `idx_plan_id` (`plan_id`),
KEY `idx_module` (`module`),
KEY `idx_status` (`status`),
KEY `idx_execute_status` (`execute_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='测试用例表list_cases 数据来源)';
-- ---------- sd_test_plans 测试计划表 ----------
CREATE TABLE IF NOT EXISTS `sd_test_plans` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
`plan_id` VARCHAR(64) NOT NULL COMMENT '测试计划ID如 ajD47uZZH4yK7P5vh-Md3',
`plan_name` VARCHAR(255) NOT NULL COMMENT '计划名称',
`iteration_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '所属迭代ID',
`description` TEXT NULL COMMENT '计划描述',
`status` VARCHAR(16) NOT NULL DEFAULT 'draft' COMMENT '计划状态draft/approved/in_progress/done字典 sd_test_plan_status',
`created_by` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_plan_id` (`plan_id`),
KEY `idx_iteration_id` (`iteration_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='测试计划表';
-- ---------- sd_test_results 测试执行结果表 ----------
CREATE TABLE IF NOT EXISTS `sd_test_results` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
`result_id` VARCHAR(64) NOT NULL COMMENT '执行结果ID业务唯一',
`case_id` VARCHAR(64) NOT NULL COMMENT '用例编码(关联 sd_test_cases.case_id',
`plan_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '所属测试计划ID',
`run_status` VARCHAR(16) NOT NULL DEFAULT 'not_run' COMMENT '执行结果pass/fail/blocked/skipped字典 sd_test_run_status',
`actual_result` TEXT NULL COMMENT '实际结果描述',
`bug_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '失败联动产生的Bug ID若有',
`executed_by` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '执行人',
`executed_at` DATETIME NULL COMMENT '执行时间',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_result_id` (`result_id`),
KEY `idx_case_id` (`case_id`),
KEY `idx_plan_id` (`plan_id`),
KEY `idx_run_status` (`run_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='测试执行结果表';
-- ---------- 字典:用例状态 ----------
INSERT IGNORE INTO `sd_dict` (`dict_code`, `dict_name`, `item_code`, `item_name`, `sort_no`, `enabled`) VALUES
('sd_test_case_status', '测试用例状态', 'draft', '草稿', 1, 1),
('sd_test_case_status', '测试用例状态', 'active', '启用', 2, 1),
('sd_test_case_status', '测试用例状态', 'closed', '关闭', 3, 1);