Структура git-репозитория для практикума

Регистрация

Репозиторий

Правила именования

В подкаталоге содержатся:

Работа с ветками во втором семестре

Подсистема проверки домашних заданий

Пример:

20210903/1

Как написать тест на класс/функцию?

  1. К файлу с классом/функцией необходимо приписать тестирующий код
       1 import sys
       2 exec(sys.stdin.read())
    
  2. В файл с тестом (1.in) кладётся программа на питоне, в которой используется тестируемый класс или функция

  3. В файл с эталонным выводом попадает результат этого print()

Пример:

Кросс-тестирование

  1. Подготавливаем окружение (необязательно, но практика показала, что так меньше ошибок)
    python3 -m venv crosstest
    cd crosstest
    source bin/activate          # Вариант для Linux / MacOS
    Scripts\activate        # Вариант для windows
    pip install путь_до_hworker.whl
    • Для того, чтобы возобновить работу в окружении после выхода из него, надо вновь войти в каталог окружения и запустить activate

  2. <!> В некоторых случаях стартовый сценарий в командной строке не виден, тогда вместо hworker надо писать python -m hworker

  3. Быстрая проверка, что HWorker запускается:
    • hworker -s -c update

      • Это тестовый пример, он заводится в подкаталоге sample

      • Он выдаст журнал проверок
    • можно даже запустить hworker -s -c update -c publish, но не обязательно ☹

  4. Выберите себе напарника из числа участвующих в вашем практикуме (публикатор на grep.cs.msu.ru)

  5. Подготовка HWorker к кросс-тестированию
    • Скачиваем конфигурационный файл и кладём в тот же каталог

    • Вписываем в этот файл себя и напарника
      • Имя — строго как в публикаторе на grep.cs.msu.ru

      • Репозиторий — строго в формате https://… (не git@git:…). Проверьте, что этот репозиторий доступен публично и его можно склонировать.

  6. Проверяем, что HWorker работает в режиме полной проверки:
    • hworker путь-до/personal.toml -c update

    • Ошибок быть не должно
  7. Заходим в свой репозиторий. Подкладываем в подкаталог check (рядом с файлами-тестами) всех задач (кроме №0 — классных работ, и задач, относительно которых отмечено, что кросс-тестов по ним не надо) файл remote с описанием тестов, которые написали не вы. Формат файла:

    [remote]
    "Напарник:20241008/2/01" = []
    "Напарник:20241008/2/02" = []
    "Напарник:20241008/2/03" = []
    
    • Напарник — ID напарника, 20241008/2 — ID задачи, 01 — имя файла без расширения .in/.out

    • <!> Пушим файлы */*/remote в репозиторий

  8. Выполняем кросс-тестирование этой задачи той же командой (update).

    • Посмотреть результаты можно командой hworker путь-до/personal.toml -c "show result"

      • Ключевое слово для поиска — "rating = …". В идеале должно быть 1.0

LecturesCMC/PracRepoStruct (последним исправлял пользователь hbd 2024-12-24 14:21:09)