Я предлагаю сделать это с INI-файлом. Простой пример ниже:
config.ini
[app]
user = myuser
pass = 123123
stage = 1
ваша конфигурация init:
Config::init(parse_ini_file('app.ini'));
parse_ini_file document щелкните здесь
Пройдя через этот процесс четыре раза, я обнаружил, что любое внедрение TDD не удастся без определенного уровня принуждения. Программисты не хотят менять стиль и не напишут свой первый модульный тест и внезапно увидят свет.
Вы можете применять принудительное исполнение на уровне управления, но это отнимает много времени для всех участников. Некоторый уровень этого необходим в любом случае в начале, но в конечном итоге вам понадобится автоматическое принуждение. Ответ на этот вопрос - ввести непрерывную интеграцию.
Я обнаружил, что сервер CI является краеугольным камнем любой среды TDD. Если разработчики не знают, что случится что-то плохое, если они не напишут тесты, у вас всегда будут ковбои, которые считают, что это ниже их.
Упростите написание тестов , а результаты видимыми .
Я лично не пишу тесты для каждого фрагмента кода в приложении.
Сосредоточьтесь на объектах домена в приложении. В моем случае это «расчет цены» и «изменение запасов»
. Напомните им, что они, вероятно, уже пишут тесты, но что они удаляют свою работу сразу после создания. Пример: во время разработки функции у вас будет страница / тестовый скрипт с результатом echo или var_dump (). После проверки результата вручную вы измените параметры функции и снова выполните проверку.
При некоторых дополнительных усилиях эти тесты можно автоматизировать в модуле UnitTest. А какой программист не любит автоматизировать?
Что касается командного вопроса, а также универсальных идей о разработке и тестировании программного обеспечения, я бы предложил веб-сайт и книги Джоэла Спольски: http://joelonsoftware.com/ I получил от него много идей.
SimpleTest - отличная документация и объяснения по тестированию для php
Другой способ запустить TDD - это попытаться использовать инфраструктуру PHP. Без фреймворка сложно эффективно реализовать модульное тестирование.