Сведения об автоматической проверке
Вы можете использовать автоматическую классификацию для автоматической проверки работы учащегося по заданию в GitHub Classroom. Вы настраиваете тесты для задания, а тесты выполняются немедленно каждый раз, когда учащийся отправляется в репозиторий заданий на GitHub.com. Учащийся может просматривать результаты теста, вносить изменения и отправлять новые результаты.
После того как учащийся принимает задание, при каждой отправке в репозиторий заданий (или в заданном учителем расписании), GitHub Actions выполняет команды для теста автоградинга в среде Linux, содержащей новейший код учащегося. GitHub Classroom создает необходимые рабочие процессы для GitHub Actions. Вам не нужен опыт работы с GitHub Actions для использования автоградирования, но при необходимости можно изменить конфигурации рабочих процессов в соответствии с вашими потребностями. Дополнительные сведения о рабочих процессах и GitHub Actionsсм. в разделе Непрерывная интеграция.
Вы можете использовать платформу тестирования, выполнить пользовательскую команду, записать тесты входных или выходных данных или объединить различные методы тестирования. Среда Linux для автоматической проверки содержит множество популярных программных средств. Дополнительные сведения см. в сведениях о последней версии Ubuntu в Средства выполнения тестов, размещенные в GitHub.
Общие сведения о том, какие учащиеся проходят тесты автоматической проверки, можно найти в задании в GitHub Classroom. Зеленая галочка означает, что все тесты проходят для учащегося, а красный крестик означает, что некоторые или все тесты завершаются неудачей. Если вы присваиваете баллы за один или несколько тестов, то пузырьке будет показана оценка по результатам тестов и максимально возможная оценка за задание.
Методы проверки
GitHub Classroom предоставляет различные предустановки тестов автоградинга, которые можно использовать, если вы не хотите настраивать рабочие процессы GitHub Actions. Вы также можете использовать настраиваемые данные GitHub Actions YAML для определения собственного рабочего процесса автоградирования.
Использование предустановок GitHub
Предустановки можно использовать без каких-либо знаний о GitHub Actions. Вы можете ввести сведения об автоматических тестах и GitHub Classroom автоматически добавит необходимые файлы в репозитории заданий учащихся.
Существует три типа предустановок: входные и выходные тесты, тесты Python и выполнение команд.
Тест входных и выходных данных
При необходимости тест входных и выходных данных выполняет команду настройки, а затем предоставляет стандартные входные данные для команды теста. GitHub Classroom оценивает выходные данные команды теста, сверяя с ожидаемым результатом.
| Параметр | Description |
|---|---|
| Имя теста | Имя теста, которым он обозначен в журналах. |
| Команда настройки |
_Необязательно_. Команда, выполняемая перед тестами, например компиляция или установка. |
| Команда выполнения | Команда для выполнения теста и создания стандартных выходных данных, которые будут оценены. |
| Входные данные | Стандартные входные данные для команды выполнения. |
| Ожидаемые выходные данные | Выходные данные, которые ожидаются в стандартных выходных данных команды выполнения. |
| Сравнение | Тип сравнения выходных данных команды выполнения и ожидаемых выходных данных
-
Включено — тест считается пройденным, если ожидаемые выходные данные
есть в любой части стандартных выходных данных команды выполнения. -
Точно — тест считается пройденным, если ожидаемые выходные данные полностью идентичны
стандартным выходным данным команды выполнения. -
Регулярное выражение — тест считается пройденным, если регулярное выражение
в ожидаемых выходных данных совпадает со стандартными выходными данными команды выполнения.
Тест Python
Тест Python запускает команду установки, а затем запускается pytest. Количество баллов, полученных в наборе тестов, зависит от количества тестового pytest набора, который проходит учащийся. Каждое тестирование стоит одинаковое количество очков; Можно изменить количество точек всего набора тестов, изменив Points параметр.
| Параметр | Description |
|---|---|
| Имя теста | Имя теста, которым он обозначен в журналах. |
| Команда настройки |
_Необязательно_. Команда, выполняемая перед тестами, например компиляция или установка.
[Некоторые зависимости уже установлены](https://github.com/classroom-resources/autograding-python-grader/blob/main/requirements.txt), но при необходимости можно установить больше. Вам не нужно использовать `sudo`и вместо него `pip`следует использовать`pip3`. |
| Команда выполнения | Команда для выполнения теста и создания кода выхода для оценки. |
| Время ожидания | Значение в минутах длительности выполнения теста, прежде чем он будет завершен со сбоем. |
| Точки |
Необязательно. Общее количество очков всего pytest набора стоит. Каждый тест будет стоит Points / number_of_tests |
Тест команды выполнения
При выполнении теста команды выполнения запускается команда настройки, а затем команда теста. GitHub Classroom проверяет выходное состояние команды теста. Код выхода 0 приводит к успешному выполнению, а любой другой код выхода приводит к сбою.
GitHub Classroom содержит предустановки для тестов команд выполнения на разных языках программирования. Например, тест Запуска узла указывает в команде настройки npm install, а в команде теста npm test.
| Параметр | Description |
|---|---|
| Имя теста | Имя теста, которым он обозначен в журналах. |
| Команда настройки |
_Необязательно_. Команда, выполняемая перед тестами, например компиляция или установка. |
| Команда выполнения | Команда для выполнения теста и создания кода выхода для оценки. | | Время ожидания | Значение в минутах длительности выполнения теста, прежде чем он будет завершен со сбоем. | | Точки | Необязательно. Количество баллов, которые присуждаются за тест, в составе общей оценки. |
Использование пользовательского рабочего процесса GitHub Actions
Вместо использования предустановок можно также добавить любой рабочий процесс .github/workflows/classroom.yml GitHub Actions в файл в начальный репозиторий кода.
Файл можно изменить .github/workflows/classroom.yml непосредственно на странице редактирования назначения, выбрав настраиваемые наборы YAML вместо предустановок GitHub . При нажатии кнопки "Преобразовать в файл рабочего процесса" вам будет предложено зафиксировать изменения в начальный репозиторий кода. Эта синхронизация будет работать только в том случае, если начальный репозиторий кода находится в той же организации, что и класс. Если начальный репозиторий кода находится в другой организации, необходимо вручную изменить .github/workflows/classroom.yml файл.
Настройка тестов для автоматической проверки задания
Вы можете добавить тесты для автоматической проверки во время создания нового задания. Дополнительные сведения см. в разделе [AUTOTITLE или Создание отдельного задания](/education/manage-coursework-with-github-classroom/teach-with-github-classroom/create-a-group-assignment).
Вы можете добавлять, изменять или удалять тесты для автоматической проверки для существующего задания. Все изменения, внесенные через пользовательский интерфейс Classroom, будут отправлены в существующие репозитории учащихся, поэтому будьте внимательны при редактировании тестов.
-
Войдите в GitHub Classroom.
-
В списке аудиторий выберите аудиторию, которую хотите просмотреть.
-
Справа от назначения, который вы хотите изменить, щелкните .
-
На левой боковой панели щелкните Оценки и обратная связь.
-
Добавление, изменение или удаление теста для автоматической проверки.
-
Чтобы добавить тест, в разделе "Добавить тесты автоградирования" выберите раскрывающееся меню "Добавить тест ", а затем выберите метод grading, который вы хотите использовать. Настройте тест, а затем нажмите кнопку "Сохранить тестовый случай".
-
Чтобы изменить тест, справа от имени теста щелкните . Настройте тест, а затем нажмите кнопку "Сохранить тестовый случай".
-
Чтобы удалить тест, справа от имени теста щелкните .
-
-
В нижней части страницы нажмите кнопку Обновить задание.
Настройка при выполнении тестов автоградирования
По умолчанию автоматические тесты автоградирования будут выполняться всякий раз, когда учащийся отправляется в репозиторий заданий на GitHub.com. Однако если вы хотите управлять данными GitHub Actions минут, это поведение можно изменить.
- Войдите в GitHub Classroom.
- В списке аудиторий выберите аудиторию, которую хотите просмотреть.
- Справа от назначения, который вы хотите изменить, щелкните .
- На левой боковой панели щелкните Оценки и обратная связь.
- Под списком тестов автоградирования можно настроить при выполнении автоматических тестов.
- Каждый раз, когда учащийся отправляет задание: это поведение по умолчанию.
- По расписанию: вы можете задать время каждый день или каждую неделю для автоматического выполнения тестов.
- Вручную: запуски тестов автоградинга будут запускаться вручную на панели мониторинга назначения.
Просмотр и скачивание результатов тестов для автоматической проверки
Скачивание результатов автоматической проверки
Вы можете скачать CSV-файл с подробными сведениями о заданиях учащихся с помощью кнопки "Скачать" на странице обзора. При этом будет создан и скачан CSV-файл, содержащий ссылку на репозиторий учащегося, дескриптор GitHub учащегося, идентификатор в списке, метка времени отправки и оценка функции автоматической проверки.
Просмотр отдельных журналов
- Войдите в GitHub Classroom.
- В списке аудиторий выберите аудиторию, которую хотите просмотреть.
- В списке назначений выберите назначение, которое хотите просмотреть.
- Справа от отправки щелкните октикона "контрольный список" aria-label="Значок контрольного списка" %}.
- Просмотрите выходные данные теста. Дополнительные сведения см. в разделе Использование журналов выполнения рабочих процессов.