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

Тимур Нозадзе timur.nozadze на gmail.com
Ср Мар 14 15:34:36 PDT 2012


> Да и зачем в конце чистить? Это работа для make clean. Сам make и так
> много временных файлов насоздает.
> Хотя это наверное проблема, если вы используете системный /tmp. Не
> используйте его, пользуйтесь текущей директорией :)
Нет, системный /tmp я не трогаю. В моём конкретном случае,
предположим, чистить в конце действительно не так уж и важно, и можно
оставить это для make clean. Но это если речь идёт о файлах. А если
предположить, что инициализация подразумевает какие-то более хитрые
действия, хотя бы, например, запись в БД?

> Идеального решения вы не найдете. Есть три варианты запустить тесты:
>
> perl t/xxx.t
> prove -v t/xxx.t
> make test TEST_FILES=t/xxx.t
Ну, вроде бы, и prove, и make test работают через
Test::Harness/TAP::Harness, так что можно считать, что варианта
более-менее два. :)

> Не нужно вам это. Инициализируйте и дропайте в каждом тесте.
Да, мне, может быть, и не так уж дозарезу нужно -- не так у меня много
тестов, и не такие страшные вещи там делаются, чтобы нельзя было их
делать в каждом тесте.
Но если тестов много и сделать нужно что-то тяжёлое (например,
перезалить/сгенерировать какую-нибудь не совсем маленькую тестовую БД)
-- думаю, вышеобозначенная фича вполне могла бы иметь право на жизнь.


15 марта 2012 г. 1:06 пользователь Ruslan Zakirov
<ruz на bestpractical.com> написал:
> 2012/3/15 Тимур Нозадзе <timur.nozadze на gmail.com>:
>>> Один раз на файл или один раз на несколько файлов?
>> Один раз на прогон тестов, независимо от того, прогоняется один файл
>> или несколько.
>> Т. е.  запускаем напрямую любой один тест (perl t/01-sometest.pl) --
>> действия выполняются в начале и конце 01-sometest.pl.
>> Запускаем набор файлов, например, через make test -- перед прогоном
>> первого теста в первом файле и после прогона последнего в последнем.
>
> Идеального решения вы не найдете. Есть три варианты запустить тесты:
>
> perl t/xxx.t
> prove -v t/xxx.t
> make test TEST_FILES=t/xxx.t
>
> Первый кардинально отличается от двух других, но и там не передается
> список тестов.
>
> Не нужно вам это. Инициализируйте и дропайте в каждом тесте.
>
> Возможность запускать параллельно тесты очень полезна.
>
> Еще в определенный момент захочется после падения тест файла оказаться
> в том же окружении. По этому, если тест развалился можно не дропать
> данные, а дополнительно выводить конфиг файл для запуска.
>
> --
> Best regards, Ruslan.
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org



-- 
С уважением, Тимур Нозадзе


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