自动评分:评分规则和执行引擎

- 每个示例的 checks.yaml:书上评价表的功能项转成操作步骤和期望结果(10 个示例共 23 项)
- 引擎:编译一次,每项在沙箱里单独启动一次程序,按控件名操作、调节实训台、核对结果;
  提示框自动点第一个按钮;全站同时最多跑 2 项
- 不通过时写明期望和实际,如"期望6 秒内 txt_even 的文字包含"发现入侵",实际是"正常"";
  找不到书上规定的控件名时直接指出
- 规则写错时指出第几项第几步
- 测试:参考答案全部通过;编译错误、控件改名、判断写反、忘停定时器、接错 DO 口各自报出对应原因

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-22 18:20:46 +08:00
1 parent 5bb2940969
commit 37fc747b49
16 files changed
+824

No files matched your search

+18
View File
@@ -0,0 +1,18 @@
# 评分规则:书上评价表的功能项。每项单独启动一次程序,按步骤操作,核对结果。
# 格式说明见 server/src/grading/checks.ts
- title: 能通过 ZigBee 打开路灯
steps:
- select: { control: com_port, item: COM4 }
- click: btn_open
- click: rb_Open
- expect: { zigbee: 1, on: true }
- expect: { control: lamp1, on: true }
- title: 能通过 ZigBee 关闭路灯
steps:
- select: { control: com_port, item: COM4 }
- click: btn_open
- click: rb_Open
- click: rb_Close
- expect: { zigbee: 1, on: false }
- expect: { control: lamp1, on: false }