top of page

Больше 1000 тестов для хобби-игры — напрасный труд?

Фото автора: Marcel Dütscher
Marcel Dütscher
2 июл.
1 мин. чтения

В нашем проекте теперь заметно больше тысячи автоматических тестов: около 990 на стороне сервера и около 120 в клиенте Unity. Для семейного проекта это звучит как перебор. На самом деле всё наоборот — вот почему.


Тесты — наш второй разработчик. В одиночном проекте некому сказать на код-ревью: «Подожди, это ломает крафт». Эту роль выполняют тесты. У каждой игровой механики — рецептов, кислорода, голода, поведения существ, паролей миров — есть тесты, которые запускаются при каждом изменении. Рефакторинг без страха — вот настоящая победа.


Достаточно быстро, чтобы не раздражать. Тесты, которые идут четверть часа, не запускает никто. Поэтому наш барьер CI двухступенчатый: проверка пул-реквеста идёт чуть больше трёх минут и включает быстрые тесты; полный медленный набор запускается потом. Так цикл разработки остаётся бодрым, а покрытие не теряется.


Тестировать Unity — отдельная тема. Логику клиента трудно тестировать внутри работающего движка. Наш приём: ядро клиентской логики живёт в отдельной библиотеке, которая работает без Unity, — её мы тестируем без графики, как обычный код. Только то, что действительно требует движка, идёт как тест EditMode/PlayMode.


Предупреждения — это ошибки. Наш CI собирает с «warnaserror»: любое предупреждение компилятора ломает сборку. Звучит педантично, но так не появляется кладбище предупреждений, в котором в конце концов тонет то самое важное.


Честный итог: написание тестов отнимает, наверное, пятую часть времени разработки. Зато каждая исправленная функция остаётся исправленной — а для проекта, который оживает вечерами после работы, нет ничего ценнее уверенности, что функция выходных не разрушила функцию вторника.

Недавние посты

Смотреть все

Комментарии


Комментарии к этому посту больше не доступны. Обратитесь к владельцу сайта за дополнительной информацией.
bottom of page