Требовать локальный файл в PHPUnit - PullRequest
0 голосов
/ 23 марта 2012

Я пытаюсь протестировать наше дерево исходников, используя PHPUnit, со старым, устаревшим веб-кодом, пытаясь внести как можно меньше изменений, чтобы начать.Как только тестирование начнется, я смогу изменить функции библиотеки для лучшего использования и лучшего модульного тестирования.Однако мне нужно выполнить тесты, чтобы позволить мне изменить его.

Вопрос: Мы разделяем код библиотеки во многих проектах нашего приложения, но все они имеют общую структуру каталогов.Когда веб-сайт работает, локальные каталоги становятся доступными, когда нам требуются файлы в библиотеке.

Примите это во внимание:

APP1
APP2
Library
Library/COMM
Library/UTIL
...

При запуске приложения вы указываете на APP1 или APP2 дляразные приложения.У них есть общий код (обмен сообщениями, доступ к БД и т. Д.).в библиотеке.Проблема в том, что функциям в библиотеке нужны специальные параметры для работы, так как они кодируются сегодня.Эти библиотеки просто требуют ('Config.php');поскольку он будет найден либо в APP1, либо в APP2 (у них обоих есть один со специфическими для приложения настройками), и веб-сервер использует APP1 или APP2 в качестве каталога, когда требуются файлы библиотеки () 'd.

Несмотря на то, что это работает, происходит сбой при попытке запустить код в PHPUnit.Мой вопрос заключается в том, как включить файл Config.php без необходимости слишком много менять прежний код до начала тестирования.

Я знаю, что это неправильный формат, но это то, что я унаследовал.

Я не могу просто потребовать ('../../ APP1 / Config.php');поскольку оба приложения совместно используют эту библиотеку.

Любые предложения приветствуются.

Примечание. Мы пытаемся протестировать библиотеку и все проекты, когда начинаем писать тесты, поэтому не уверены, что include_path ее решит.Я рассматриваю различные файлы PHPUnit.xml.dist для каждого приложения, но сейчас пытаюсь избежать этого из-за влияния компании на тестирование всех приложений сразу.

1 Ответ

1 голос
/ 24 марта 2012

из phpunit.xml (...) и из cli (--bootstrap ./bootstrap.php) вы можете указать файл начальной загрузки.В этом файле вы можете сделать это включение, которое вы хотите сделать.

Как совет, при заявлении о тестировании устаревшей базы кода не начинайте с модульного теста.Ваша первая цель должна заключаться в том, чтобы «установить какие-то автоматизированные тесты на месте».Для большинства людей это будут системные тесты.Это тестирование стека / сайта в целом.Распространенными инструментами для этого являются Selenium .

Это еще не маленькая задача.То, что вам нужно сделать, это выяснить, «как мне привести мою систему в согласованное состояние».Первое, что вам может понадобиться, это автоматизировать импорт и очистку тестовых данных в вашей базе данных.Как только вы это сделаете, вы сможете надежно запускать автоматизированные тесты.Вам нужно будет добиться того, чтобы многие другие также были согласованы, и дата и время являются хорошим примером.

Суть в том, что, исходя из опыта, начиная с модульных тестов, вы не получите того значения, которое вам необходимо доказать, чтоавтоматизированное тестирование стоит усилий.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...