- 每个学生一套数据库,长期保存(data/databases/<用户编号>/库名.db);学生程序运行时挂进沙箱可读写 - Sim.Data:SqlConnection / SqlCommand / SqlDataReader / SqlDataAdapter / SqlCommandBuilder / SqlParameter; 连接字符串只按库名打开学生自己的库;ScriptDom 解析 T-SQL 后按白名单转写成 SQLite 语句, STRICT 表 + 元数据表还原 SQL Server 的列类型,报错编号和中文信息与 SQL Server 一致; INSERT 不写列名时跳过自增列,日期统一格式(书上 DateTime.ToString() 拼接的日期能正确比较) - 常驻 SQL 服务(Sim.Runner sql-server):数据库页面的查询、对象资源管理器,评分前按实验 database.sql 建库 - 数据库页面(代替 SSMS):对象资源管理器、查询窗口、编辑前 200 行、表设计器、恢复实验初始数据 - DataGridView(绑定 DataView/DataTable/DataSet,单元格修改写回 DataTable)、DateTimePicker;设计器工具箱加入 - 评分:每个检查项一份新建的实验库;新增点 / 修改表格单元格、选日期、表格里有 / 没有某行的检查 - 示例:项目 6 任务 2、3;时间格式改成和中文 Windows 一致(9:05:03);异常堆栈不暴露服务器路径 - 测试:数据库端到端、接口(每人只看到自己的库、恢复实验数据)、评分出错情况、T-SQL 生成 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
45 lines
1.9 KiB
YAML
45 lines
1.9 KiB
YAML
# 评分规则:书上评价表的功能项。每项单独启动一次程序(使用 database.sql 建的初始数据库),按步骤操作,核对结果。
|
|
# 格式说明见 server/src/grading/checks.ts
|
|
- title: 能正确显示光照度、温度、湿度
|
|
steps:
|
|
- select: { control: com_port, item: COM2 }
|
|
- click: btn_Open
|
|
- expect: { control: btn_Open, text: 关闭, desc: 按钮文字变成"关闭" }
|
|
- board: { light: 733, temperature: 31, humidity: 42 }
|
|
- click: btn_get
|
|
- expect: { control: txt_light, text: '733' }
|
|
- expect: { control: txt_temperature, text: '31' }
|
|
- expect: { control: txt_humidity, text: '42' }
|
|
|
|
- title: 能把数据保存到数据库,并显示在表格中
|
|
steps:
|
|
- select: { control: com_port, item: COM2 }
|
|
- click: btn_Open
|
|
- board: { light: 733, temperature: 31, humidity: 42 }
|
|
- click: btn_get
|
|
- click: btn_save
|
|
- expect: { messageBox: 保存成功 }
|
|
- expect: { control: dataGridView1, row: [温度=31, 湿度=42, 光照度=733], desc: 表格里有刚保存的一行,温度、湿度、光照度各在对应的列 }
|
|
|
|
- title: 能删除选中的数据
|
|
steps:
|
|
- select: { control: com_port, item: COM2 }
|
|
- click: btn_Open
|
|
- click: btn_get
|
|
- click: btn_save
|
|
- cell: { control: dataGridView1, row: 0, column: 0 }
|
|
- click: btnDelete
|
|
- expect: { messageBox: 删除成功 }
|
|
- expect: { control: dataGridView1, noRow: [编号=1], desc: 第 1 行(编号为 1)已被删除 }
|
|
|
|
- title: 能在表格中修改数据并保存
|
|
steps:
|
|
- select: { control: com_port, item: COM2 }
|
|
- click: btn_Open
|
|
- click: btn_get
|
|
- click: btn_save
|
|
- edit: { control: dataGridView1, row: 1, column: 温度, value: '35' }
|
|
- click: btnUpdate
|
|
- expect: { messageBox: 修改成功 }
|
|
- expect: { control: dataGridView1, row: [编号=2, 温度=35], desc: 编号为 2 的一行温度改成了 35 }
|