Как я могу получить доступ к глобальным переменным внутри PHPUnit 3.4.9? - PullRequest
4 голосов
/ 08 апреля 2010

Я пытаюсь написать тесты для некоторого устаревшего кода с помощью PHPUnit 3.4.9, но, похоже, все мои глобальные переменные невидимы.

Как мне получить доступ к глобальным переменным внутри PHPUnit 3.4.9?

Ответы [ 2 ]

3 голосов
/ 08 апреля 2010

Они должны быть доступны. Однако PHPUnit создает резервные копии глобального состояния между тестами:

По умолчанию PHPUnit запускает ваши тесты таким образом, чтобы изменения глобальных и суперглобальных переменных ($ GLOBALS, $ _ENV, $ _POST, $ _GET, $ _COOKIE, $ _SERVER, $ _FILES, $ _REQUEST) не влияли другие тесты. При желании эта изоляция может быть расширена до статических атрибутов классов.

так что это может быть проблемой. Также обратите внимание, что

Объекты некоторых классов, которые предоставляются самим PHP, такие как, например, PDO, не могут быть сериализованы, и операция резервного копирования прервется, если, например, такой объект будет сохранен в массиве $ GLOBALS.

См. Главу о Проверка глобального состояния в Руководстве по PHPUnit

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

Используйте эту команду phpunit --no-globals-backup

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