Тестирующая подсистема - LernaProject/Lerna GitHub Wiki

Данная статья проливает немного света на работу тестирующих серверов.


На любой машине, имеющей доступ к базе данных и репозиториям проекта, можно поднять одну или несколько тестилок. Они абсолютно независимы как от сайта, так и друг от друга.

Их настройки хранятся в файле lerna/local_settings.py в словаре TESTER. Если вы не собираетесь запускать тестирование на локальном компьютере, можно их не заполнять.

Запускается тестилка следующей командой:

./manage.py runtester [-f] WORKING_DIRECTORY

Аргументом к ней передается директория, в которой будет происходить компиляция и запуск решений. Рабочая директория полностью очищается перед каждой компиляцией. Если указана непустая директория, будет выдано предупреждение типа "Вы уверены, что хотите стереть все свои файлы?". Ключ -f (--force) подавляет предупреждение.

После запуска скрипт каждую секунду ищет непроверенные попытки в базе данных, и, если находит, забирает первую, компилирует и запускает на наборе тестов. Все это сопровождается выводом детальных сообщений на консоль.

Завершить выполнение можно, нажав Ctrl+C. Также возможно (из другого терминала) завершить процесс вызовом kill. Тестилка более-менее корректно обрабатывает оба события: если она в этот момент обрабатывала какое-либо решение, оно получает вердикт "System error".

⚠️ **GitHub.com Fallback** ⚠️