0

我有一個ZF2應用程序,並希望爲其編寫一些集成測試。我正在使用PHPUnit v6(沒有zend-test)。 PHPUnit已經建立,並且實現了Bootstrap類。一切都在/工作。如何在Zend Framework 2的測試環境中獲取Config服務的配置?

對於正常請求,框架會掃描配置文件夾(通常在config/application.config.php['module_listener_options']['config_glob_paths']中定義)併爲我合併所有配置。但是現在我處於測試環境中,需要一些來自定製配置文件的配置文件(例如config/autoload/module/audit-logging.local.php) - 並且無法知道如何將它們添加/合併到其他配置文件中。

如何在自定義配置文件中集成配置並在運行PHPUnit測試時使它們可用於應用程序?

回答

1

如何創建特定環境的配置文件,例如:

config 
├── application.config.php 
├── autoload 
│   └── global.php 
└── environment 
    ├── development.php 
    ├── production.php 
    └── testing.php 

,然後調整config/application.config.php這樣:

return [ 
    'modules' => $modules, 
    'module_listener_options' => [ 
     'config_glob_paths' => [ 
      __DIR__ . '/autoload/{,*.}{global,local}.php', 
      __DIR__ . '/environment/' . (\getenv('APPLICATION_ENVIRONMENT') ?: 'production') . '.php', 
     ], 
     'module_paths' => [ 
      __DIR__ . '/../module', 
      __DIR__ . '/../vendor', 
     ], 
    ], 
]; 

現在,所有你需要做的是配置APPLICATION_ENVIRONMENT環境變量,並將其設置爲testing,例如。然後,您可以使用config/environment中的相應配置文件爲特定環境配置應用程序。

<phpunit> 
    <php> 
     <env name="APPLICATION_ENVIRONMENT" value="testing" /> 
    </php> 
    <testsuites> 
     <testsuite name="Integration Tests"> 
      <directory>.</directory> 
     </testsuite> 
    </testsuites> 
</phpunit> 

適合我。

相關問題