Задача: реализовать автотесты в Эгее

Это задание на разработку инфраструктурной фичи в Эгее. Если вы хотите взять эту задачу, напишите мне.

Задача

Задача: прикрутить и настроить автотесты в Эгее, используя в качестве пилота функцию e2_summarize.

Сейчас в Эгее нет автотестов, а я не умею их писать. Их нужно настроить, и покрыть тестами одну функцию, чтобы у меня был пример, как с этим быть дальше.

Функция e2_summarize — отличный кандидат. Она принимает полный текст заметки и возвращает её короткую версию, которая потом используется в блоках рекомендаций, описаниях для соцсетей и т. д. Я эту функцию периодически подкручиваю, и хотел бы в реальном времени видеть, что ничего не сломал. В качестве тестовых данных и эталонных результатов хотелось бы взять заметки моего блога и то, как функция их сокращает сейчас (разумеется, я их выгружу в каком-то удобном формате).

Я представляю себе идеальный процесс так: есть первая папка файлов исходных текстов и вторая папка файлов результирующих текстов. Обе папки закоммичены в Гит. При изменении кода функции фоновый процесс пересобирает вторую папку, используя данные из первой. Если какие-то файлы во второй папке при этом изменились, я это вижу в рабочей директории Гита, и могу посмотреть, что именно сломалось. Если я внёс баг в функцию, e2_summarize, то я чиню его, пока изменения во второй папке не исчезнут. С другой стороны, если изменения во второй папке желанные, то есть я улучшил работу функции как хотел, то я просто коммичу изменения в Гит, тем самым объявляя новый вариант эталоном.

Возможно, мои представления неправильные и есть способ лучше — тогда научите.

Разработчик Дмитрий Уткин помогает мне и пишет:

Сделанная задача позволит писать модульные тесты на свой код другим разработчикам, где тест выступал бы спецификацией модуля и другие разработчики меняли его не боясь сломать поведение, на которое раньше расчитывали.

Идеально, если команда будет готова к запуску в gitlab pipeline.

Результат

В результате хочется видеть мёрдж-реквест, где, видимо, установлен какой-то фреймворк для тестирования (PHPUnit?) и сделан тест функции e2_summarize. Все тесты запускаются одной командой. Но также можно запустить тестирование только одного файла.

Тут не могу не написать, что в целом я скептически настроен к фреймворкам любого рода. Интуитивно кажется, что проще самому написать цикл, который запустит функцию последовательно с данными из папки и сохранит результат в другую папку. Но я бы хотел, чтобы у вас был какой-то опыт в тестировании, и вы понимали, зачем нужен фреймворк. Чтобы если мои интуитивные представления ошибочны, вы могли их завернуть и сделать как надо.

Условия участия

Если вам интересно такое сделать, напишите мне письмо. Какие возникают сомнения? Возможно, в задаче что-то не учтено и вы мне всё объясните?

Важно: я не смогу оплатить вашу работу, но смогу использовать её результаты в Эгее. О вашем участии я, разумеется, напишу.

Дальше
Мои книги