Сведения об автоматической проверке
Вы можете использовать автоматическую классификацию для автоматической проверки работы учащегося по заданию в GitHub Classroom. Вы настраиваете тесты для задания, а тесты выполняются немедленно каждый раз, когда учащийся отправляется в репозиторий заданий на GitHub.com. Учащийся может просматривать результаты теста, вносить изменения и отправлять новые результаты.
После того как студент принимает задание, при каждом push-запросе в репозиторий заданий (или по расписанию, заданному учителем), 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 |
|---|---|
| Имя теста | Имя теста, которым он обозначен в журналах. |
| Команда настройки | |
| Необязательно. Команда, выполняемая перед тестами, например компиляция или установка. | |
Некоторые зависимости уже установлены, но при необходимости можно установить больше. Вам не нужно использовать sudoи вместо него pipследует использоватьpip3. | |
| Команда выполнения | Команда для выполнения теста и создания кода выхода для оценки. |
| Время ожидания | Значение в минутах длительности выполнения теста, прежде чем он будет завершен со сбоем. |
| Точки | |
Необязательно. Общее количество очков всего pytest набора стоит. Каждый тест будет стоит Points / number_of_tests |
Тест команды выполнения
При выполнении теста команды выполнения запускается команда настройки, а затем команда теста.
GitHub Classroom проверяет статус выхода команды теста. Код выхода 0 приводит к успешному выполнению, а любой другой код выхода приводит к сбою.
GitHub Classroom предоставляет пресеты для специфических языковых тестов команд для различных языков программирования. Например, тест Запуска узла указывает в команде настройки npm install, а в команде теста npm test.
| Параметр | Description |
|---|---|
| Имя теста | Имя теста, которым он обозначен в журналах. |
| Команда настройки | |
| Необязательно. Команда, выполняемая перед тестами, например компиляция или установка. | |
| Команда выполнения | Команда для выполнения теста и создания кода выхода для оценки. |
| Время ожидания | Значение в минутах длительности выполнения теста, прежде чем он будет завершен со сбоем. |
| Точки | |
| Необязательно. Количество баллов, которые присуждаются за тест, в составе общей оценки. |
Использование пользовательского GitHub Actions рабочего процесса
Вместо использования пресетов вы также можете добавить любой GitHub Actions рабочий процесс в .github/workflows/classroom.yml файл в репозитории стартового кода.
Вы можете редактировать .github/workflows/classroom.yml файл напрямую со страницы редактирования назначения, выбрав Custom 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.
- В списке аудиторий выберите аудиторию, которую хотите просмотреть.
- В списке назначений выберите назначение, которое хотите просмотреть.
- Справа от публикации нажмите .
- Просмотрите выходные данные теста. Дополнительные сведения см. в разделе Использование журналов выполнения рабочих процессов.