Hola,
estoy intentando ejecutar test unitarios con PHPUnit pero siempre me da el mismo error.
Estoy trabajando con MacOsX 10.6.6, PHP 5.3.2, PHPUnit 3.5.13 y Apache 2.0.63.
Siguiendo las instrucciones de
http://www.zendcasts.com/unit-testin...punit/2009/06/ adapté mi código de la siguiente manera.
/tests/
phpunit.xml
Código XML:
Ver original<phpunit bootstrap="./application/bootstrap.php" colors="true" processIsolation="true">
<testsuite name="MyApp">
<directory>./</directory>
</testsuite>
<filter>
<whitelist>
<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 type="coverage-html" target="./log/report" charset="UTF-8"
yui="true" highlight="true" lowUpperBound="50" highUpperBound="80" />
<log type="testdox-html" target="./log/testdox.html" />
</logging>
</phpunit>
/tests/application/
bootstrap.php
Código PHP:
Ver original<?php
// Define path to application directory
// Define application environment
(getenv('APPLICATION_ENV') ?
getenv('APPLICATION_ENV') : 'testing'));
// Ensure library/ is on include_path
realpath(APPLICATION_PATH
. '/../library'), )));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap and run
require_once './application/controllers/ControllerTestCase.php';
/tests/Application/Controllers/
ControllerTestCase.php
Código PHP:
Ver originalrequire_once 'Zend/Application.php';
require_once 'Zend/Test/PHPUnit/ControllerTestCase.php';
abstract class ControllerTestCase extends Zend_Test_PHPUnit_ControllerTestCase
{
/**
* @var Zend_Application
*/
public $application;
public function setUp()
{
$this->bootstrap = array($this, 'appBootstrap'); parent::setUp();
}
public function appBootstrap()
{
$this->application = new Zend_Application(APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini');
$this->application->bootstrap();
}
}
El error que me da es el siguiente:
Código:
PHP Fatal error: Class 'Zend_Controller_Action' not found
in /Users/xxx/Documents/websites/quickstart/application/controllers/AccountController.php on line 4
Como no encuentra las clases de la librería Zend, pienso que es debido al include_path de PHP. Sin embargo, he comprobado que apunta a donde debe:
Código:
/Users/xxx/Documents/websites/quickstart/application/../library:
/Users/xxx/Documents/websites/quickstart/library:
/Users/xxx/Documents/websites/quickstart/library:
.:
/usr/lib/php:/Applications/MAMP/bin/php5.3/lib/php
La librería Zend se encuentra en
Código:
/Users/xxx/Documents/websites/quickstart/library
y es un link simbólico.
¿A alguien se le ocurre qué puede estar pasando?
Gracias de antemano.