Pregunta

Me hizo la misma pregunta en otro foro , pero todavía no tenemos ninguna suerte allí. Así que permítanme la misma pregunta aquí.

Quiero Zend_Test configuración para probar mi código de controlador (estoy usando PHP, Zend Framework). Todo parece ser correcta y de acuerdo con el documentación oficial , pero seguí recibiendo un error.

Para la explicación detallada sobre el problema y mi configuración, consulte la mensaje del foro aquí. Alguien me puede dar una pista, ¿qué pasa con mi configuración?

Gracias! Saludos, Andree.

¿Fue útil?

Solución

he tenido este problema antes cuando se utiliza setFallbackAutoloader (verdadero), que eres, pero nunca he sido capaz de localizar la causa raíz. Si se busca en Google el error encontrará unos pocos informes de errores ZF mencionarlo.

¿Puede confirmar que también está usando setFallbackAutoloader (verdadero) en su aplicación? Si no, entonces usted puede quitar esa línea desde su TestHelper.php. Si es así, entonces trate de añadir:

$autoLoader->suppressNotFoundWarnings(true);

justo después de él, esto normalmente soluciona el problema para mí (pero puede causar algunos otros temas).

Otros consejos

Compruebe hacia fuera este tutorial, y seguir paso a paso. Funciona bien para mí.

Tutorial PHPUnit + Zend Framework

Me he dado una charla sobre este tema en varias conferencias, y hay incluso un seminario en línea en el sitio web de Zend (ver enlaces más abajo).

Cuando miro a las secuencias de comandos de configuración, usted tiene una gran cantidad de desorden allí por lo que es difícil mantener una vez que añadir más características a su aplicación.

Mi clase TestHelper sólo contiene lo siguiente:

<?php
/*
 * Example test helper script taken from the blog article of Matthew Weier
 * O'Phinney on September 11, 2008
 * 
 * {@link http://weierophinney.net/matthew/archives/190-Setting-up-your-Zend_Test-test-suites.html}
 */

/*
 * Start output buffering
 */
//ob_start();

/*
 * Set error reporting to the level to which code must comply.
 */
error_reporting( E_ALL | E_STRICT );

/*
 * Set default timezone
 */
date_default_timezone_set('Europe/Brussels');

/*
 * Testing environment
 */
if (!defined('APPLICATION_ENV'))
    define('APPLICATION_ENV', 'testing');

/*
 * Determine the root, library, tests, and models directories
 */
$root        = realpath(dirname(__FILE__) . '/../');
$library     = $root . '/library';
$tests       = $root . '/tests';
$models      = $root . '/application/models';
$controllers = $root . '/application/controllers';

/*
 * Set up application and test path constant for easy access helper classes
 */
if (!defined('APPLICATION_PATH'))
    define('APPLICATION_PATH', $root . '/application');
define('TEST_PATH', $tests);

/*
 * Prepend the library/, tests/, and models/ directories to the
 * include_path. This allows the tests to run out of the box.
 */
$localFrameworkPaths = array (
    '/usr/local/zend/share/ZendFramework/library',
    '/opt/ZendFramework',
);
$include_path = get_include_path();
foreach ($localFrameworkPaths as $zfPath) {
    $include_path = str_replace($zfPath . PATH_SEPARATOR, '', $include_path);
}
$path = array(
    APPLICATION_PATH,
    $models,
    $library,
    $tests,
    $include_path,
);
set_include_path(implode(PATH_SEPARATOR, $path));

/**
 * Register autoloader
 */
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();

/**
 * Store application root in registry
 */
Zend_Registry::set('testRoot', $root);
Zend_Registry::set('testBootstrap', $root . '/application/bootstrap.php');

/**
 * Say to the sessions we use unit testing here
 */
Zend_Session::$_unitTestEnabled = true;

/*
 * Unset global variables that are no longer needed.
 */
unset($root, $library, $models, $controllers, $tests, $path);

Esto es similar a la configuración original MWOP proporcionado en su blog (ver el enlace en la parte superior de la clase).

Y eso es todo, no hay necesidad de preocuparse por la adición de módulos manualmente o hacer el seguimiento de los cambios en la arquitectura de la aplicación, ya que esto usar el propio arranque de la aplicación.

Para obtener más información, no visita estos links:

Avísame si lo hizo el trabajo para su caso también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top