[Moscow.pm] Хуки при выполнении тестов

Alexandr Gomoliako zzz на zzz.org.ua
Ср Мар 14 16:25:05 PDT 2012


> оставить это для make clean. Но это если речь идёт о файлах. А если
> предположить, что инициализация подразумевает какие-то более хитрые
> действия, хотя бы, например, запись в БД?

Ну если это SQLite, DB_File или что-то такое, то они же тоже простые файлы :)
А для mysql и т.д. уже нужно что-то специально делать, можно через
%ENV проверять или plan 'skip_all', если нету. Получится, что
нестандартная часть не будет запускаться, там где не надо.

В общем у меня так:
1. В каждом тесте создается директория tmp/tXX прямо в текущей
директории, XX номер теста.
2. Данные чистятся непосредственно перед использованием, чтобы не
заботиться о make clean.
3. Отдельный clean хук, чтобы удалить tmp/.

Это позволяет избежать проблем с системным /tmp (особенно
переполнением при ошибках), а также запускать тесты параллельно, как
заметил Руслан, сохранять данные для дальнейшего расследования,
выводить их сразу через diag, что для cpantesters и разных CI очень
важно и т.д.


Подробная информация о списке рассылки Moscow-pm