我可以使用CLI( phpunit --configuration phpunit.xml )来正常运行测试。
tests目录具有以下层次结构:
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>
应用/ 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的人,以下是参考文献:Unit Testing with Zend Framework 1.11 and 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()*
怎么会发生这种情况?我已经通过pear安装了PHP APC,这个模块是phpinfo()的结果。并且可以通过CLI执行测试。我检查的另一件事是php include路径,我已经将/ usr / share / php添加到Zend Studio包含路径。
有人会提出建议吗?
谢谢!