在ZF2中PHp单元测试错误'未定义索引:/ config/autoload/global.php中的SERVER_NAME'

0 phpunit zend-framework2

我刚开始使用Zend框架2.我想为我的Cart模块设置单元测试.

我按照http://framework.zend.com/manual/current/en/tutorials/unittesting.html的步骤进行了操作

当我运行 :/ var/www/AHA/CDP/module/Cart /测试 来自终端的$ phpunit 我得到以下输出:

Sebastian Bergmann的PHPUnit 3.7.28.

配置从/var/www/ZF2Sample/module/Cart/tests/phpunit.xml中读取

Ë

时间:146毫秒,内存:5.50Mb

有1个错误:

1)Cart\tests\Cart\Controller\CartControllerTest :: testIndexActionCanBeAccessed include(/ var/www/ZF2Sample/module/Admin/config /../ view/error/index.phtml):无法打开流:没有这样的文件或目录

/var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php:506 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php :506 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/View/View.php:205 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/View/View.php:233 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/View/View.php:198 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Mvc/View/Http/DefaultRenderingStrategy.php :102 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php:468 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php:207 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Mvc/View/Http/DefaultRenderingStrategy.php:112/var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager. php:468 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php:207 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php: 352 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php:327/var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase. php:288 /var/www/ZF2Sample/module/Cart/tests/Cart/Controller/CartControllerTest.php:30468 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php:207 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php:352/var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php:327 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php: 288 /var/www/ZF2Sample/module/Cart/tests/Cart/Controller/CartControllerTest.php:30468 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php:207 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php:352/var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php:327 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php: 288 /var/www/ZF2Sample/module/Cart/tests/Cart/Controller/CartControllerTest.php:30327 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php:288 /var/www/ZF2Sample/module/Cart/tests/Cart/Controller/CartControllerTest.php:三十327 /var/www/ZF2Sample/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php:288 /var/www/ZF2Sample/module/Cart/tests/Cart/Controller/CartControllerTest.php:三十

FAILURES!测试:1,断言:0,错误:1.

下面是我的global.php:

<?php
    define('SITE_URL', 'http://' . $_SERVER['SERVER_NAME'].'/');
    define('JS_URL', 'http://' . $_SERVER['SERVER_NAME'].'/js/');
    define('CSS_URL', 'http://' . $_SERVER['SERVER_NAME'].'/css/');
    define('IMG_URL', 'http://' . $_SERVER['SERVER_NAME'].'/img/');
    return array(
        'cart_webservice_url' => "http://" . $_SERVER['SERVER_NAME'] . "/ecommercewebservices",
    );
?>
Run Code Online (Sandbox Code Playgroud)

我放了$ _SERVER ['SERVER_NAME'] ='myproject.com'; 在global.php的开头

然后我得到以下输出:

Sebastian Bergmann的PHPUnit 3.7.28.

配置从/var/www/AHA/CDP/module/Cart/tests/phpunit.xml中读取

我搜索了很多但找不到任何答案.请建议.

小智 7

您可以在phpunit.xml文件中使用以下示例设置不同的$ _SERVER参数.

<phpunit>
....
    <php>
        <server name='HTTP_HOST' value='http://localhost' />
        <server name="SERVER_NAME" value="http://foo.bar"/>
        <server name="SERVER_PORT" value="80"/>
        <server name="REMOTE_ADDR" value="127.1.2.3"/>
    </php>
....
</phpunit>
Run Code Online (Sandbox Code Playgroud)