журнал ·
Что тесты проверяют перед выходом страницы
Перевод ИИ Эта страница — машинный перевод оригинала (английский / корейский), в нём возможны ошибки. Приоритет у оригинала. Читать оригинал
Прежде чем ipe.rest изменится, 137 небольших тестов проверяют его на нашем компьютере. Они идут около восьми секунд, при каждом деплое запускаются лишь семь из них, и кое-чего не видит ни один. Вот на что они смотрят.
Вчерашняя запись была о файлах для машин. Эта — о том, с чем читатели никогда не встречаются: о проверках, которые идут до того, как страница выйдет. Цифры от 8 ноября 2026 года, взяты из репозитория в том виде, в каком он был до добавления этой записи: одна команда, python3 -m unittest discover tests, 137 тестов, все пройдены.
Десять файлов, одна команда
Тесты лежат в десяти файлах, всего 1 850 строк. Основной вес приходится на журнал: 56 из 137 касаются его страниц. Ещё 23 покрывают остальные страницы — о нас, контакты, конфиденциальность и условия, — а 18 покрывают главную. Остальное — небольшие группы: 9 для уведомлений поисковым системам, 8 для структурированных данных, 7 для деплоя, 7 для отображения времени, 4 для service worker, 4 для ссылок и версий ресурсов и 1 для картинки предпросмотра.
Что они ловят
Многие страницы здесь создаются из наших исходников: записи журнала, карта сайта, лента, llms.txt и карточки на главной. Тест падает, если любой созданный файл устарел, так что никто не может поправить его вручную и забыть об исходнике.
Другие тесты охраняют языки. У каждой записи должна быть версия на каждом из двенадцати языков, каждая страница должна ссылаться на остальные и на саму себя, а карта сайта должна перечислять те же ссылки, что и страница. Третьи охраняют правила, которые мы поставили себе сами: новая запись короче 300 слов отклоняется, короче 400 слов вызывает только предупреждение, запись с датой в будущем отвергается, а описание страницы не может быть оборвано многоточием.
У service worker, который позволяет открыть страницу без сети, имя кеша содержит номер версии. Тест проверяет, что версия в ссылках на ресурсы каждой страницы совпадает с той, что указана в service worker, чтобы изменённая таблица стилей не отдавалась устаревшей.
Семь тестов, которые идут при каждом деплое
В процессе деплоя запускается только один файл, содержащий 7 тестов. Он проверяет собранный сайт, а не репозиторий: на месте ли файлы, нужные посетителю, не выгружены ли папки вроде scripts и tests и помечена ли страница 404 как noindex со ссылкой на главную. Если он падает, деплой останавливается до того, как что-либо опубликовано.
Остальные 130 — привычка, а не шлагбаум. Мы запускаем их перед коммитом, и ничто на сервере нас к этому не принуждает.
Чего они не видят
Пройденный тест говорит, что страницы согласуются друг с другом, а не что они хороши. Ни один тест не читает десять машинных черновиков перевода, чтобы понять смысл, поэтому на этих страницах стоит пометка об ИИ-переводе. Ни один тест здесь не открывает браузер, поэтому вёрстку на узком экране телефона мы проверяем глазами. И мы не можем сказать, замечает ли хоть один краулер нашу заботу о том, чтобы эти файлы шли в ногу.
ipe(); // check the plain things, every time
Почти всё, что оставляет тихий сайт тихим, скучно: сошедшийся счёт, ссылка, которая открывается, версия, которая сдвинулась. Пусть лучше машина проверит это за восемь секунд, чем мы понадеемся, что не забыли.