我成功安装了 PHPUnit,现在我正试图让它与 Zend Framework 1.x 一起工作。我到处检查了不同的方法,但它们都不适合我,因为每次我在“测试”文件夹中执行 PHPUnit 命令时,都会收到以下错误:
警告:require_once(Zend/xxxxxxxxx.php):打开流失败:第 12 行的 C:\wamp\www\square\tests\TestHelper.php 中没有这样的文件或目录"
其中 xxxxxxx.php 是 Application.php、Autoloader.php 等。
所以我得出的结论是,PHPUnit 或 Bootstrap 没有找到我的 Zend 库。很奇怪,因为我在生产|开发人员环境中运行项目时没有任何问题(在 php.ini 中添加了 Zend 的路由)。
phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="./TestHelper.php">
<testsuite>
<directory>./</directory>
</testsuite>
<filter>
<whitelist>
<directory suffix=".php">../application/</directory>
<exclude>
<directory suffix=".phtml">../application/</directory>
</exclude>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="./log/report" charset="UTF-8"
yui="true" highlight="true"
lowUpperBound="50" highLowerBound="80"/>
<log type="testdox-html" target="./log/testdox.html" />
</logging>
</phpunit>
测试助手.php
<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'testing'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/**
* Register autoloader
*/
require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
require_once APPLICATION_PATH . '/../tests/application/ControllerTestCase.php';