我會把測試部在我的application.ini:
[production]
...
; Database.
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.username = "user"
resources.db.params.password = "pass"
resources.db.params.dbname = "primary"
[testing : production]
resources.db.params.username = "test"
resources.db.params.password = "test"
resources.db.params.dbname = "testing"
坐落在我的.htaccess環境變量:
SetEnv APPLICATION_ENV testing
並確保我加載正確的設置:
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
$application = new Zend_Application(
APPLICATION_ENV,
array('config' => array(
APPLICATION_PATH . '/configs/application.ini',
APPLICATION_PATH . '/configs/additional.ini',
))
);
另一個想法
Conditionally set基於遠程IP和用戶代理的.htaccess中的APPLICATION_ENV變量。如果兩者不匹配,則使用生產。
SetEnv APPLICATION_ENV production
SetEnvIf Remote_Addr 55\.55\.55\.555 APPLICATION_ENV=testing
SetEnvIfNoCase User-Agent !PHPUNIT APPLICATION_ENV=production
但我希望我的應用程序環境保持不變。一旦部署了應用程序,我將希望在生產服務器上運行單元測試,並且我希望應用程序在我進行單元測試期間能夠正常運行。 – 2012-02-05 15:54:21
哦,我明白了。然後我將有條件地加載基於IP地址的測試環境。那會滿足你的要求嗎? – nachito 2012-02-05 15:58:39
首先部署然後運行unittests是不是很奇怪? – markus 2012-02-05 16:11:22