官方手册:https://trampgeek.github.io/moodle-qtype_coderunner/

官方 python xml 模板 https://github.com/trampgeek/moodle-qtype_coderunner/blob/master/samples/python3demoquizquestions.xml

1.题目类型:python3_cosc121。这是一种复杂的 Python3 题型,坎特伯雷大学 COSC121 课程的几乎所有题目都使用了这种题型。学生提交的题目首先要经过pylint 源代码分析器,如果 pylint 出现任何错误,则提交的题目会被拒绝。否则,测试将照常进行。显然,pylint需要安装在沙盒服务器上。这种题型需要使用许多不同的模板参数(请参阅“模板参数”部分了解这些参数的含义),以便将其用于解决各种不同的问题。例如,可以将其配置为要求或禁止特定的语言结构(例如,要求学生将for循环重写为while 循环),或将函数大小限制为给定值,或从学生的代码中剥离函数,以便单独测试支持函数。有关如何使用此题型或任何其他题型的详细信息,可以通过展开题型编辑页面中的“题型详情”部分 找到。

2.Moodle CodeRunner 题目的 XML 结构示意图

<question type="coderunner">

├─ <name> … </name>                      # 题目名字 命名规则 腾讯文档 作业号+题号+题目+分值+学号后四位 如  lab0101Fix the Bug (100pts)1234

├─ <questiontext format="html">          # 题目描述
│    └─ <text><![CDATA[ … ]]></text>

├─ <generalfeedback format="html"> … </generalfeedback>

├─ <defaultgrade> … </defaultgrade>      # 分值
├─ <penalty> … </penalty>
├─ <hidden> … </hidden>

├─ <coderunnertype> … </coderunnertype>  # 使用的 CodeRunner 题型
├─ <prototypetype> … </prototypetype>
├─ <allornothing> … </allornothing>
├─ <penaltyregime> … </penaltyregime>
├─ <precheck> … </precheck>
├─ <showsource> … </showsource>

├─ <answerboxlines> … </answerboxlines>  # 答题框行数
├─ <answerboxcolumns> … </answerboxcolumns>
├─ <answerpreload> … </answerpreload>
├─ <useace> … </useace>                  # 是否用 Ace 编辑器

├─ <answer><![CDATA[ … ]]></answer>      # 标准答案

├─ <validateonsave> … </validateonsave>

├─ <templateparams><![CDATA[{ … }]]></templateparams>
│    # JSON 格式参数,如 requiredconstructs / proscribedconstructs

├─ <testcases>                           # 测试用例集合
│    ├─ <testcase … >
│    │    ├─ <testcode><text>…</text></testcode>
│    │    ├─ <stdin><text>…</text></stdin>
│    │    ├─ <expected><text>…</text></expected>
│    │    ├─ <extra><text>…</text></extra>
│    │    └─ <display><text>SHOW</text></display>
│    │
│    └─ <testcase … > … (更多测试)

└─ </question>

最后修改: 2025年09月8日 星期一 08:58