Skip to main content

使用自动分级

您可以通过配置测试在作业仓库中运行,来自动提供对您学生提交的代码的反馈。

Who can use this feature

Organization owners who are admins for a classroom can set up and use autograding on assignments in a classroom. 有关教室管理员的详细信息,请参阅“关于教室管理”。

关于自动分级

You can use autograding to automatically check a student's work for an assignment on GitHub Classroom. You configure tests for an assignment, and the tests run immediately every time a student pushes to an assignment repository on GitHub.com. The student can view the test results, make changes, and push to see new results.

学生接受作业后,每次推送到作业仓库时,GitHub Actions 都会在包含学生最新代码的 Linux 环境中运行自动分级测试的命令。 GitHub Classroom 为 GitHub Actions 创建必要的工作流程。 您不需要使用 GitHub Actions 的经验便可使用自动分级。

您可以使用测试框架、运行自定义命令、编写输入/输出测试或组合不同的测试方法。 用于自动分级的 Linux 环境包含许多流行的软件工具。 有关详细信息,请参阅“GitHub 托管运行器规范”中最新版本的 Ubuntu 的详细信息。

您可以通过导航 GitHub Classroom 中的作业来查看哪些学生通过了自动分级测试的概况。 绿色复选标记表示学生的所有测试都已通过,红色 X 表示学生的部分或所有测试都未通过。 如果您为一个或多个测试评分,则气泡会显示测试的分数以及作业可得最高分数。

包含自动评分结果的作业概述

评分方法

有两种评分方法:输入/输出测试和运行命令测试。

输入/输出测试

输入/输出测试可以选择性运行设置命令,然后向测试命令提供标准输入。 GitHub Classroom 根据预期结果评估测试命令的输出。

设置说明
测试名称测试的名称,用于识别日志中的测试
设置命令可选。 在测试之前运行的命令,如编译或安装
运行命令运行测试并生成用于评估的标准输出的命令
输入运行命令的标准输入
预期输出您要视为运行命令的标准输出的输出
比较运行命令的输出和预期输出之间的比较类型

  • 包括:当预期输出出现在 run 命令的标准输出中的任何位置时
    传递
  • 精确:当预期输出与 run 命令的标准输出完全相同时
    传递
  • 正则表达式:当预期输出中的正则表达式与 run 命令的标准输出匹配时
    传递
超时测试在导致失败之前应运行多长时间(分钟)
可选。 测试从总分中获得的分数

运行命令测试

运行命令测试运行设置命令,然后运行测试命令。 GitHub Classroom 检查测试命令的退出状态。 退出代码 0 会导致成功,任何其他退出代码都会导致失败。

GitHub Classroom 为各种编程语言提供语言特定的运行命令测试预设。 例如,运行节点测试使用 npm install 预填充 setup 命令,使用 npm test 预填充 test 命令。

设置说明
测试名称测试的名称,用于识别日志中的测试
设置命令可选。 在测试之前运行的命令,如编译或安装
运行命令运行测试并生成用于评估的退出代码的命令
超时测试在导致失败之前应运行多长时间(分钟)
可选。 测试从总分中获得的分数

配置作业的自动评分测试

您可以在创建新作业时添加自动评分测试。 有关详细信息,请参阅“创建单个分配”或“创建组分配”。

您可以添加、编辑或删除现有作业的自动评分测试。 通过课堂 UI 所做的所有更改都将推送到现有的学生资料库,因此在编辑测试时要小心。

  1. 登录 GitHub Classroom。 1. 在课堂列表中,单击要查看的课堂。 组织教室列表中的教室 1. 在要编辑的作业的右侧,单击 用于在作业列表中编辑作业的铅笔图标
  2. 在左侧边栏中,单击“评分和反馈”。 作业基础知识左侧的“评分和反馈”
  3. 添加、编辑或删除自动评分测试。
    • 要添加测试,请在“添加自动评分测试”下选择“添加测试”下拉菜单,然后单击要使用的评分方法。 使用“添加测试”下拉菜单,单击评分方法配置测试,然后单击“保存测试用例”。 自动评分测试的“保存测试用例”按钮
    • 要编辑测试,请点击测试名称右侧的 用于编辑自动评分测试的铅笔图标配置测试,然后单击“保存测试用例”。 自动评分测试的“保存测试用例”按钮
    • 要删除测试,请点击测试名称右侧的 用于删除自动评分测试的回收站图标
  4. 在页面底部,单击“更新作业”。 页面底部的“更新作业”按钮

查看和下载自动分级测试的结果

下载自动评分结果

您也可以通过“Download(下载)”按钮下载学生自动评分的 CSV。 这将生成并下载一个包含学生仓库链接、其 GitHub 处理、名册标识、提交时间戳和自动评分的CSV。

选择“下载”按钮,将出现“下载成绩(突出显示)”选项和“下载存储库”的附加选项

查看单个日志

  1. 登录 GitHub Classroom。 1. 在课堂列表中,单击要查看的课堂。 组织教室列表中的教室 1. 在作业列表中,单击要查看的作业。 课堂作业列表中的作业
  2. 在提交的右侧,单击“查看测试”。 作业提交的“查看测试”按钮
  3. 查看测试输出。 有关详细信息,请参阅“使用工作流运行日志”。

延伸阅读