Есть проект на CodeIgniter (4 Контроллера (3 из наследуются от главного), 4 модели (3 из них наследуются от главной), около 40 вьюшек, 8 хелперов ~ 5 000 написанного кода).
Стоит задача покрыть все это дело юнит-тестами, таким образом, чтобы можно было запустить все тесты один раз, и увидеть полный отчет.
В связи с чем вопросы:
1. Что использовать? Unit Test Class из CodeIgniter больше похож на assert, чем что-то нормальное. С ним я не смогу тестировать все одним запуском. С PHPUnit все усугубляется тем, что он не связан с CodeIgniter структурой и я не смогу просто инклудить какой-то класс потому, что не подтянутся все autoload, зависимости, прочие.
Контекст:
Mock я делать не могу, потому, что на БД все сильно завязано и важно знать об ошибках в БД, как об ошибках в входящих данных.
Также есть функции отправки милы, смс-ок. И это все участвует в бизнес-логике, что также хочется автоматически тестировать.
Когда есть класс, который нужно протестировать, никаких проблем нет, но когда есть множество классов, которые связаны с собой наследованием, и используют всякие хелперы и конфиги и маршрутизации… В общем, я из внешней среды, банально не могу вызвать хоть какой-то из методов своих классов, так чтоб он отработал не ругаясь на отсутствие библиотек и прочих файлов. Это ограничения самого фреймворка, и сама суть фреймворка. А PHPUnit предполагает, что такая возможность у меня есть.
Попробуйте прикрутить Codeception от Davert насколько помню CI должно быть несложно прикрутить. Есть примеры для Kohana, ZF, Symfony, по аналогии должно быть несложно сделать для CI.