Frage

, fragte ich die gleiche Frage in einem anderen Forum , aber ich habe noch nicht über kein Glück gibt. So erlauben Sie mir bitte hier die gleiche Frage zu stellen.

Ich mag Setup Zend_Test meinen Controller Code zu testen (Ich bin mit PHP, Zend Framework). Alles scheint richtig zu sein und nach der offizieller Dokumentation , aber ich hielt einen Fehler.

Für die detaillierte Erklärung über das Problem und mein Setup finden Sie in der Forum posten hier. Wer kann mir einen Anhaltspunkt geben, was mit meinem Setup falsch ist?

Danke! Grüße, Andree.

War es hilfreich?

Lösung

Ich habe dieses Problem zuvor bei der Verwendung von setFallbackAutoloader (true), den du bist, aber ich habe nie in der Lage gewesen, die Ursache ausfindig zu machen. Wenn Sie den Fehler googeln finden Sie ein paar ZF Bugreports zu erwähnen es finden.

Können Sie bestätigen, dass Sie auch verwenden setFallbackAutoloader (true) in Ihrer Anwendung? Wenn nicht, dann können Sie diese Zeile aus Ihrer TestHelper.php entfernen. Wenn Sie sind, dann versuchen Sie:

$autoLoader->suppressNotFoundWarnings(true);

nur danach, dies in der Regel behebt das Problem für mich (aber möglicherweise einige andere Probleme verursachen).

Andere Tipps

Überprüfen Sie dieses Tutorial aus, und folgen Sie es Schritt für Schritt. Funktioniert gut für mich.

Ich habe einen Vortrag zu diesem Thema auf mehreren Konferenzen gegeben, und es gibt sogar ein Online-Seminar auf der Zend-Website (siehe Link unten).

Wenn ich das Setup-Skripte aussehen, haben Sie eine Menge Unordnung in es macht es schwer zu halten, wenn Sie mehr Funktionen in die Anwendung einzufügen.

Meine TestHelper Klasse enthält nur die folgenden:

<?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);

Dies ist vergleichbar mit den ursprünglichen Einstellungen MWOP auf seinem Blog zur Verfügung gestellt (den Link oben auf der Klasse sehen).

Und das ist es, kein Grund zur Sorge über Module manuell hinzufügen oder da von Änderungen in Ihrer Anwendungsarchitektur zu verfolgen dies wird Ihre Anwendung eigene Bootstrap verwenden.

Weitere Informationen Sie diese Links finden Sie unter:

Lassen Sie mich wissen, wenn es um den Job für Ihren Fall auch getan hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top