Zend framework2 ZF2-如何将配置数组传递给基本测试用例类

Zend framework2 ZF2-如何将配置数组传递给基本测试用例类,zend-framework2,Zend Framework2,当使用AbstractControllerTestCase(或其子类)时,您会得到一个方便的方法setApplicationConfig(),让您传递一个类似于config/application.config.php的数组,以便只包含测试所需的模块 如何将进入config/autoload/global.php的数组传递到AbstractControllerTestCase PS:如果有帮助的话,我正在尝试传递一个使用SQLite的自定义ORM连接,您可以在测试时使用单独的配置文件,并在测试控

当使用
AbstractControllerTestCase
(或其子类)时,您会得到一个方便的方法
setApplicationConfig()
,让您传递一个类似于
config/application.config.php
的数组,以便只包含测试所需的模块

如何将进入
config/autoload/global.php的数组传递到
AbstractControllerTestCase


PS:如果有帮助的话,我正在尝试传递一个使用SQLite的自定义ORM连接,您可以在测试时使用单独的配置文件,并在测试控制器中加载这些文件

比如,

copy config/application.config.php to config/application.config.test.php
进行一个小的更改,允许我们加载单独的测试配置文件,而不必接触生产应用程序使用的全局配置文件

 'config_glob_paths' => array(realpath(__DIR__) . '/autoload/{,*.}{global,test}.php'),
这将允许我们覆盖我们需要的任何配置值,因为测试配置文件是在通常的全局配置文件之后加载的。现在,我们可以在test.php、anything.test.php等内部进行任何特定于测试的配置

现在你可以复制了

autoload/global.php to autoload/test.php
您现在可以更改配置项,这些配置项将覆盖global.php中的配置项

autoload/test.php

<?php
return array(
'db' => array(
    'driver'    => 'Pdo',
    'dsn' => 'sqlite:' . __DIR__ .'/../../data/testing.sqlite',
    //'dsn'       => 'mysql:dbname=somedatabase;host=localhost',
    'username'  => 'dbuser',
    'password'  => 'passwordgoeshere',
),

这允许您将所有测试配置与主应用程序配置设置分开。

您只需在测试时创建单独的配置文件,并在测试控制器中加载这些文件即可

比如,

copy config/application.config.php to config/application.config.test.php
进行一个小的更改,允许我们加载单独的测试配置文件,而不必接触生产应用程序使用的全局配置文件

 'config_glob_paths' => array(realpath(__DIR__) . '/autoload/{,*.}{global,test}.php'),
这将允许我们覆盖我们需要的任何配置值,因为测试配置文件是在通常的全局配置文件之后加载的。现在,我们可以在test.php、anything.test.php等内部进行任何特定于测试的配置

现在你可以复制了

autoload/global.php to autoload/test.php
您现在可以更改配置项,这些配置项将覆盖global.php中的配置项

autoload/test.php

<?php
return array(
'db' => array(
    'driver'    => 'Pdo',
    'dsn' => 'sqlite:' . __DIR__ .'/../../data/testing.sqlite',
    //'dsn'       => 'mysql:dbname=somedatabase;host=localhost',
    'username'  => 'dbuser',
    'password'  => 'passwordgoeshere',
),

这允许您将所有测试配置与主应用程序配置设置分开。

这是我的第一种方法,但我更希望有一个
TestConfig
类,它将通过
TestConfig::getConfiguration()等静态方法提供
application.config.php
global.php
。为什么?这不会给你带来额外的好处。您会注意到配置文件返回了一个数组,因此您可以在类中轻松地使用它。示例$myArray=包括'some.config.php';这将允许你返回这些文件中的数据和/或在你的类中合并。主要是为了有一个干净的测试目录结构,建议的文件都不会在测试目录中。我想你需要更新你的问题,因为它与你在这里问的完全不同=)这是我的第一种方法,但我更希望有一个
TestConfig
类,它将通过
TestConfig::getConfiguration()
等静态方法提供
application.config.php
global.php
值。为什么?这不会给你带来额外的好处。您会注意到配置文件返回了一个数组,因此您可以在类中轻松地使用它。示例$myArray=包括'some.config.php';这将允许你返回这些文件中的数据和/或在你的类中合并。主要是为了有一个干净的测试目录结构,建议的文件都不会在测试目录中。我认为你需要更新你的问题,因为它与你在这里问的完全不同=)