Как PHPUnit Zend_Test & Doctrine2 в Zend Studio - PullRequest
0 голосов
/ 29 февраля 2012

Я могу использовать CLI ( phpunit --configuration phpunit.xml ) для нормального запуска тестов.

Каталог тестов имеет такую ​​иерархию:


tests
├── application
│   ├── bootstrap.php
│   ├── controllers
│   │   └── ControllerTest.php
│   └── FirstTest.php
├── library
├── log
│   ├── report
│   └── testdox.html
└── phpunit.xml

Содержимое в файлах

  1. phpunit.xml

    <phpunit bootstrap="./application/bootstrap.php" colors="true">
    <testsuite name="Webguide Unit Test">
        <directory>./</directory>
    </testsuite>
    
    <filter>
        <whitelist>
            <directory suffix=".php">../library/</directory>
            <directory suffix=".php">../application/</directory>
            <exclude>
                <directory suffix=".phtml">../application/</directory>
                        <file>../application/Bootstrap.php</file>
                            <file>../application/controllers/ErrorController.php</file>
            </exclude>
        </whitelist>
    </filter>
    
    <logging>
        <log highlowerbound="80" lowupperbound="50" highlight="true" yui="true" charset="UTF-8" target="./log/report" type="coverage-html"/>
        <log target="./log/testdox.html" type="testdox-html"/>
    </logging>
    </phpunit>
    
  2. application / bootstrap.php

    <?php
        error_reporting(E_ALL | E_STRICT);
    
        date_default_timezone_set('GMT');
    
        define('APPLICATION_ENV', 'testing');
    
        define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../../application'));
    
        define('APPLICATION_CONFIG', APPLICATION_PATH . '/configs/application.ini');
    
        set_include_path(implode(PATH_SEPARATOR, array(
            realpath(APPLICATION_PATH . '/../library'),
            get_include_path()
        )));
    
        require_once 'Zend/Loader/Autoloader.php';
    
        Zend_Loader_Autoloader::getInstance();
    
        require_once 'Zend/Application.php';
    

(для тех, кто хочет настроить Zend Test, вот ссылки: Модульное тестирование с Zend Framework 1.11 и PHPUnit )

Когда я запускал тесты в Zend Studio 9, я получил сообщение об ошибке: "Тест не выполнен. Произошла неустранимая ошибка, запуск был остановлен вручную или выполнение скрипта было остановлено с помощью оператора die / exit" .

И в консоли вывод:

* Ошибка компиляции: /home/coiby/ZendStudio/plugins/com.zend.php.phpunit_9.0.1.201112141951 / resources / ZendPHPUnit.php строка 109 - require_once () [function.require]: Не удалось открыть обязательное '/ var / www / webguide / tests / controllers / ControllerTest.php '(include_path =' / var / www / webguide / library:.: / usr / share / php :: / var / www / webguide: ') *

В соответствии с вышеуказанной информациейЯ переместил каталог «controllers / ControllerTest.php» в верхний, то есть теперь существует «/var/www/webguide/tests/controllers/ControllerTest.php».

Но есть ошибка, вывод консоли:

* Ошибка отладки: /webguide/library/Doctrine/Common/Cache/ApcCache.php строка 52 - вызов неопределенной функции Doctrine \ Common \ Cache \ apc_fetch () *

Как это могло произойти?Я установил PHP APC от Pear, и этот модуль является результатом phpinfo ().И тесты выполняются нормально через CLI.Еще одна вещь, которую я проверил, - это php include path, я уже добавил / usr / share / php в Zend Studio include path.

Кто-нибудь даст предложение?

Спасибо!

...