簡體   English   中英

Symfony 1.4未加載sfTestFunctional失敗,找不到類

[英]Symfony 1.4 not loading sfTestFunctional failing with class not found

我已經完成了功能測試,現在想運行它們。 但是,每次運行它們時,都找不到sfTestFunctional類。

據我所知,functional.php引導程序不是從框架自動加載類。 有什么原因可能會這樣嗎?

這是我的功能引導

// guess current application
if (!isset($app))
{
  $traces = debug_backtrace();
  $caller = $traces[0];

  $dirPieces = explode(DIRECTORY_SEPARATOR, dirname($caller['file']));
  $app = array_pop($dirPieces);
}

require_once dirname(__FILE__).'/../../config/ProjectConfiguration.class.php';
$configuration = ProjectConfiguration::getApplicationConfiguration($app, 'test', isset($debug) ? $debug : true);

sfContext::createInstance($configuration);


// remove all cache
sfToolkit::clearDirectory(sfConfig::get('sf_app_cache_dir'));

$doctrine = new sfDoctrineDropDbTask($configuration->getEventDispatcher(), new sfAnsiColorFormatter());
$doctrine->run(array(), array("--no-confirmation","--env=test"));

$doctrine = new sfDoctrineBuildDbTask($configuration->getEventDispatcher(), new sfAnsiColorFormatter());
$doctrine->run(array(), array("--env=test"));

$doctrine = new sfDoctrineInsertSqlTask($configuration->getEventDispatcher(), new sfAnsiColorFormatter());
$doctrine->run(array(), array("--env=test"));

這就是我的功能測試

include(dirname(__FILE__).'/../../bootstrap/functional.php');

$browser = sfTestFunctional(new sfBrowser());
Doctrine_Core::loadData(sfConfig::get('sf_test_dir').'/fixtures/fixtures_initial.yml');

好。 因此,我將頭撞到牆上后,找到了解決方案。

由於測試環境中的某些原因,自定義過濾器不會自動加載。 解決方案是將所有自定義過濾器的require_once添加到ProjectConfiguration文件。 這是我所做的示例:

if(sfConfig::get('sf_environment') == 'test' && sfConfig::get('sf_app') == 'frontend')
{
    require_once sfConfig::get('sf_app_lib_dir').'/myFilter.class.php';
    require_once sfConfig::get('sf_app_lib_dir').'/myotherFilter.class.php';
    require_once sfConfig::get('sf_app_lib_dir').'/lovefiltersFilter.php';
    require_once sfConfig::get('sf_app_lib_dir').'/eventsManagement.class.php';

    require_once sfConfig::get('sf_test_dir').'/ProdPadTestFunctional.class.php';
}

我還必須添加我的自定義testFuntional類。 使用autoload.yml文件可以更優雅地完成此操作。

我發現了問題:

$browser = sfTestFunctional(new sfBrowser());

您應該寫:

$browser = new sfTestFunctional(new sfBrowser());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM