[Moscow.pm] Модульное тестирование - "главное чтобы блестел"

Oleg Alistratov ali на ali.org.ua
Чт Дек 30 05:04:37 PST 2010



On 30.12.2010 14:06, Алексей Шруб wrote:

> http://community.livejournal.com/ru_perl/383519.html
> т.к. вики мы так и не подняли написал в ЖЖ, хотел на хабре написать, да
> там кармы нехватает.

Ну, хоть и не гоже трясти кармой на хабре, ты нам скажи
свой логин — сообща досыпем :)

> Надеюсь кому-то будет полезно, и главное - надеюсь кто-то скажет что я
> упустил

Спасибо, статья дельная.

Реквестирую (сам, наверное, не найду времени в обозримом будущем)
написать про live testing — как жить, если юнитовым тестам для
нормальной жизни нужно что-то, чего в окружении может и не быть:
веб-сервер, база данных, writable каталог, интернет, наконец.

Это в сторону Test::Database, Test::HTTP, Test::Apache2,
использования для них HTTP::Server::Simple, баз sqlite и все такое.

Разумеется, до конца не ясно, как обеспечить тестирование _у_всех_
модуля, который предназначен, скажем, для манипулирования сервисами
Amazon EC2 или drivehq.com какого-нибудь.

Тоже надо бы осветить подходы — вот на примере Crypt::SSLeay можно.

ЗЫ:
поделюсь, може, кому полезно будет.
Вместо make test во время разработки я использую такую вот маленькую
обертку над TAP::Harness:
https://github.com/alien/ali-public/blob/master/dev/t/run_tests.pl

К ней приделан ключик -l N, который запускает только тесты, созданные
за последние N суток. Удобно на большом проекте, когда нужно
быстро и часто прогонять свеженаписанное:

   run_tests.pl -l		# все нижележащие *.t c mtime за сутки
   run_tests.pl -l 0.25		# или за крайние 6 часов



--
Олег Алистратов


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