глобальные переменные равны нулю при использовании PHPUnit

Я помещаю PHPUnit тестирование в существующий проект. Глобальные постоянные переменные широко используются. В моем модуле функции тестирования терпят неудачу, поскольку глобальные переменные равны нулю. Вот пример неудачного теста

static $secret_key = "a secret Key"; class secret_key_Test extends PHPUnit_Framework_TestCase { function test_secret_key() { global $secret_key; $this->assertEquals($secret_key, "a secret Key"); } } >> Failed asserting that 'a secret Key' matches expected null 

Любая помощь будет принята с благодарностью

Обновление: я попытался удалить статические и добавить

 protected $backupGlobals = FALSE; 

К объявлению класса без успеха.

Этот ответ не работает. Я задал практически идентичный вопрос и получил ответ, который имеет больше смысла; вы не можете перезаписать защищенное свойство $ backupGlobals в тестовом классе, которое увидит PHPUnit. Если вы работаете в командной строке, кажется, что вы можете заставить Globals работать, создав файл конфигурации xml и настроив backupGlobals на false.

EDIT: вам нужно объявить $ secret_key как глобальное, так и присвоить ему значение в глобальном пространстве при использовании PHPUnit. PHP по умолчанию помещает глобально инициализированные переменные в глобальное пространство имен, но PHPUnit изменяет это значение по умолчанию при резервном копировании глобальных переменных!

Должны произойти следующие изменения:

 global $secret_key; // Declaring variable global in global namespace $secret_key = "a secret Key"; // Assigning value to global variable 

Теперь ваш код должен работать.

Вы должны попросить phpunit не создавать резервные глобальные переменные

 protected $backupGlobals = FALSE; 

как это сказано в оригинальной статье С. Бергмана: http://sebastian-bergmann.de/archives/797-Global-Variables-and-PHPUnit.html