插件题型稳定版

ProFormA Programming Question Type

qtype_proformaKarin Borm

  • Moodle 1.9–5.1
  • 更新 2026-05-26

Quiz question type for automatically graded programming questions. Questions can be created in Moodle or imported as ProFormA tasks (https://github.com/ProFormA/proformaxml).
Plugin requires the qbehaviour_adaptiveexternalgrading plugin and ProFormA Praktomat (https://github.com/elearning-ostfalia/Proforma-Praktomat).
The ProForma Moodle Question Type is a Moodle Plugin that is used for automatically grading programming questions in Moodle quizzes. Questions are internally stored in the ProFormA format ( https://github.com/ProFormA/proformaxml ).
In order to generate the submission grade a predefined testsuite is run on an external server (Praktomat).
Standard test frameworks are used for specifying tests. Currently the following programming languages and test frameworks are supported:
Java: JUnit 4, JUnit 5, Checkstyle
C++: GoogleTest (CMake/make)
c: CUnit, GoogleTest (CMake/make)
Python: Python Unittest, Python Doctest
Setlx: Test, Syntax Check
Any other programming language resp. test framework can be used as long as the Praktomat (or any ProFormA compatible other test runner used as back-end) supports it. Since all code is open source, it can be easily extended to other languages and frameworks.
The plugin comes with a built-in Java question editor so simple Java questions can be created directly in Moodle.
More complex questions must be created outside of the system with a stand-alone editor ( https://proforma.github.io/formatEditor/proformaEditor.html ) or by other means (e.g. script). These questions can be  imported by use of another Moodle plugin.
Copyright note: The renderer code partly bases upon the renderer from essay question type (Moodle core).
Small code parts (in particular in
qbehaviour_adaptiveexternalgrading) are copied from Coderunner
( https://moodle.org/plugins/qtype_coderunner ).
Features
Various submission formats:
editor with programming language support such as syntax highlighting or automatic indentation

返回插件目录