Я могу использовать CLI ( phpunit --configuration phpunit.xml ) для нормального запуска тестов.
Каталог тестов имеет такую иерархию:
tests
├── application
│ ├── bootstrap.php
│ ├── controllers
│ │ └── ControllerTest.php
│ └── FirstTest.php
├── library
├── log
│ ├── report
│ └── testdox.html
└── phpunit.xml
Содержимое в файлах
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>
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.
Кто-нибудь даст предложение?
Спасибо!