0

私はZF2アプリケーションを持っていて、inのためのいくつかの統合テストを書いています。私はPHPUnit v6(no zend-test)を使っています。 PHPUnitが設定され、Bootstrapクラスが実装されています。すべてが働いていた。Zend Framework 2のテストコンテキストでConfigsをConfigサービスに取得する方法は?

通常のリクエストでは、フレームワークは設定フォルダ(通常はconfig/application.config.php:で定義)をスキャンし、すべての設定をマージします。しかし、今私はテストのコンテキストで、カスタム設定ファイル(例えばconfig/autoload/module/audit-logging.local.php)からいくつかのconfigsが必要です - そして、他のconfigsにそれらを追加/マージする方法を見つけることができません。

PHPUnitテストを実行しているときに、カスタム設定ファイルからconfigsを統合してアプリケーションで使用できるようにするにはどうすればよいですか?

答えて

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> 

私にとってはうまく動作します。

関連する問題