自動採点

課題リポジトリで実行するテストを構成することで、学生から提出されたコードに対するフィードバックを自動的に提供できます。

ここには以下の内容があります:

自動採点について

GitHub Classroom上で課題に対する学生の作業を自動的にチェックするために、自動評価を利用できます。 課題のためのテストを設定すると、それらのテストは学生が課題をGitHub上のリポジトリにプッシュするたびにすぐに実行されるようになります。 学生は、テストの結果を見て、変更を行い、新しい結果を見るためにプッシュできます。

学生が課題を受け入れた後、GitHub Actionsは、自動採点テストを行うコマンドを、課題リポジトリへの各プッシュに対して学生の最新コードを含むLinux環境で実行します。 GitHub Classroomは、 GitHub Actionsに必要なワークフローを作成します。 自動採点の使用にあたり、GitHub Actionsの経験は不要です。

テストフレームワークを使用したり、カスタムコマンドを実行したり、入出力テストを記述したり、さまざまなテスト方法を組み合わせたりすることができます。 自動採点用のLinux環境には、一般的なソフトウェアツールが数多く含まれています。 詳しい情報については、「GitHubホストランナーの仕様」に記載された、Ubuntu最新バージョンの詳細を参照してください。

GitHub Classroomの課題に移動して、自動採点テストでどの学生が合格したかの概要を表示できます。 緑色のチェックマークは、その学生がすべてのテストに合格したことを意味します。赤色のXは、その学生が一部またはすべてのテストで不合格だったことを意味します。 1つ以上のテストに得点を与えている場合、課題で獲得できる最高得点が吹き出しに表示されます。

自動採点結果を含む課題の概要

採点方法

採点方法には、入出力テストと実行コマンドテストの2つがあります。

入出力テスト

入出力テストは必要に応じてセットアップコマンドを実行してから、テストコマンドに標準出力を渡します。 GitHub Classroomは、テストコマンドの出力を期待する結果と照らし合わせて評価します。

設定説明
Test nameテストの名前。ログでテストを識別するためのものです。
Setup command(オプション) コンパイルやインストールなど、テストを実行する前のコマンド。
Run commandテストを実行し、評価用の標準出力を生成するコマンド。
Inputs実行コマンドの標準入力。
Expected output実行コマンドによる標準出力として期待する出力結果。
Comparison実行コマンドの出力と期待する出力との比較方法。

  • Included: 期待する出力が、実行コマンドによる標準出力の
    任意の場所に現れたら合格。
  • Exact: 期待する出力と、実行コマンドによる標準出力が
    完全に一致したら合格。
  • Regex: 期待する出力の正規表現が、実行コマンドによる
    標準出力に一致したら合格。
Timeout失敗の結果が出るまでにテストを実行する時間(分単位)。
Points(オプション) テストの合計点に占める点数。

実行コマンドテスト

実行コマンドテストはセットアップコマンドを実行してから、テストコマンドを実行します。 GitHub Classroomは、テストコマンドの終了ステータスをチェックします。 終了コードが0の場合は成功、その他の場合は失敗です。

GitHub Classroomは、さまざまなプログラミング言語に対し、言語特有の実行コマンド用プリセットを提供しています。 たとえば、Run nodeテストではセットアップコマンドにnpm installが、テストコマンドにnpm testが事前に設定されています。

設定説明
Test nameテストの名前。ログでテストを識別するためのものです。
Setup command(オプション) コンパイルやインストールなど、テストを実行する前のコマンド。
Run commandテストを実行し、評価用の終了コードを生成するためのコマンド。
Timeout失敗の結果が出るまでにテストを実行する時間(分単位)。
Points(オプション) テストの合計点に占める点数。

アシスタントのために自動採点テストを設定する

新課題の作成時に、自動採点テストを追加できます。 詳しい情報については、「個人課題の作成」または「グループ課題の作成」を参照してください。

既存の課題用の自動採点テストを追加、編集、削除できます。 既存の課題用の自動採点テストを変更した場合、既存の課題リポジトリは影響を受けません。 新しいテストを使用するには、学生またはチームが課題を受け入れ、新しい課題リポジトリを作成する必要があります。

  1. GitHub Classroomにサインインしてください。
  2. クラスルームのリストで、表示したいクラスルームをクリックしてください。 Organizationのクラスルームのリストにあるクラスルーム
  3. 編集したい課題の右で、をクリックしてください。 課題リスト中の課題を編集するための鉛筆アイコン
  4. 左サイトバーで、[Grading and feedback] をクリックします。 課題の基本情報の右側にある [Grading and feedback]
  5. 自動採点テストを追加、編集、または削除します。
    • テストを追加するには、[Add autograding tests] の下にある [Add test] ドロップダウンメニューを選択し、使用する採点方法をクリックします。 Using the "Add test" drop-down menu to click a grading method テストを設定し、[Save test case] をクリックします。 自動採点テストの [Save test case] ボタン
    • テストを編集するには、テスト名の右側にある をクリックします。 Pencil icon for editing an autograding test テストを設定し、[Save test case] をクリックします。 自動採点テストの [Save test case] ボタン
    • テストを削除するには、テスト名の右側にある をクリックします。 自動採点テストを削除するためのゴミ箱アイコン
  6. ページの下部で、[Update assignment] をクリックします。 ページカブの [Update assignment] ボタン

自動採点テストによるログを表示する

  1. GitHub Classroomにサインインしてください。
  2. クラスルームのリストで、表示したいクラスルームをクリックしてください。 Organizationのクラスルームのリストにあるクラスルーム
  3. 課題のリスト中で、表示したい課題をクリックしてください。 クラスルームの課題リスト中の課題
  4. 提出物の右側にある、[View text] をクリックします。 課題提出物の [View test] ボタン
  5. テストの出力結果をレビューします。 詳しい情報については、「ワークフロー実行ログを使用する」を参照してください。

参考リンク

このドキュメントは役立ちましたか?プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?

GitHubコミュニティで質問するサポートへの連絡