Всем привет!
Такой вопрос. Работаю сейчас на проекте, который не модернизировался уже лет 7. Текущая версия php 5.2.17 . Появилась необходимость добавить модульное тестирование, но столкнулся с проблемой: почти все инструменты для тестирования требуют новую версию php (как минимум 5.3). Обновить систему сейчас варианта нет. В процессе поиска нашел несколько вариантов решения, но каждый со своими проблемами:
1) Самый рабочий - использовать SimpleTest. Относительно версии php - самый раз. Тесты запускаются. Однако проблема в том, что проект очень тускло поддерживается и, возможно, скоро закроется, да и рано или поздно у нас все же произойдет обновление, захочется использовать PHPUnit. Не переписывать же тесты? Другие инструменты для Unit тестов уже не помню, но когда искал, то тоже вроде требовали что-то от PHP 5.3.3
2) Использовать PHPUnit версии 3.4 (работает от php 5.1+). Проблема только в том, что не понятно как устанавливать. Если просто скачать с Гитхаба файлы, то проблема возникает с путями, так как там в каждом стандартном файле класса стоит что-то вроде этого:
require_once 'PHPUnit/Framework.php';
require_once 'PHPUnit/Framework/MockObject/Generator.php';
require_once 'PHPUnit/Framework/MockObject/Matcher/InvokedAtLeastOnce.php';
require_once 'PHPUnit/Framework/MockObject/Matcher/InvokedAtIndex.php';
require_once 'PHPUnit/Framework/MockObject/Matcher/InvokedCount.php';
require_once 'PHPUnit/Framework/MockObject/Stub.php';
require_once 'PHPUnit/Runner/BaseTestRunner.php';
Естественно у меня подгрузить их не получается. Если есть мануал, то буду рад ссылке.
Если попытаться скачать с помощью pear, то нашел только вот такой совет:
$ pear config-set auto_discover 1
$ pear install --alldeps phpunit
Проблема здесь в том, что устанавливается PHPUnit 3.7, а это уже очень поздний. Нужно 3.4. Что прописать - непонятно.
3) Использовать PHPUnit 5.7 на локальной машине и локально тестировать, но тут вопрос, как тестировать код локально, когда требуется подгрузка различных файлов (из недавнего: yii1.1. Модель наследует стандартный класс, а так как беру с сервера не все файлы, а только модуль, то и подгрузить мне нужные файлы неоткуда, а всякие заглушки по-моему слишком муторно, если вообще возможно?
Вот собственно и главный вопрос: как поступить в этом случае было бы наиболее оптимально? Сейчас я склоняюсь больше в сторону simpletest, но если есть решение получше, то прошу написать об этом подробнее.