Тестирующая подсистема - LernaProject/Lerna GitHub Wiki
Данная статья проливает немного света на работу тестирующих серверов.
На любой машине, имеющей доступ к базе данных и репозиториям проекта, можно поднять одну или несколько тестилок. Они абсолютно независимы как от сайта, так и друг от друга.
Их настройки хранятся в файле lerna/local_settings.py
в словаре TESTER
. Если вы не собираетесь
запускать тестирование на локальном компьютере, можно их не заполнять.
Запускается тестилка следующей командой:
./manage.py runtester [-f] WORKING_DIRECTORY
Аргументом к ней передается директория, в которой будет происходить компиляция и запуск решений.
Рабочая директория полностью очищается перед каждой компиляцией. Если указана непустая
директория, будет выдано предупреждение типа "Вы уверены, что хотите стереть все свои файлы?". Ключ
-f
(--force
) подавляет предупреждение.
После запуска скрипт каждую секунду ищет непроверенные попытки в базе данных, и, если находит, забирает первую, компилирует и запускает на наборе тестов. Все это сопровождается выводом детальных сообщений на консоль.
Завершить выполнение можно, нажав Ctrl+C
. Также возможно (из другого терминала) завершить процесс
вызовом kill
. Тестилка более-менее корректно обрабатывает оба события: если она в этот момент
обрабатывала какое-либо решение, оно получает вердикт "System error".