2014-01-21 89 views
0

我想知道這一行試圖做什麼。這個phpunit函數addFileToFilter函數是什麼意思?

PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT'); 

下面的代碼屬於PHPUNIT manual。事實是,我在「addFileToFilter」上找到了「找不到方法」,如果任何人都可以幫助我,那麼將會非常感激。

<?php 
require_once 'PHPUnit/Util/Filter.php'; 

require_once 'PHPUnit/Extensions/Database/DataSet/AbstractDataSet.php'; 
require_once 'PHPUnit/Extensions/Database/DataSet/DefaultTableIterator.php'; 
require_once 'PHPUnit/Extensions/Database/DataSet/DefaultTable.php'; 
require_once 'PHPUnit/Extensions/Database/DataSet/DefaultTableMetaData.php'; 

PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT'); 

class MyApp_DbUnit_ArrayDataSet extends PHPUnit_Extensions_Database_DataSet_AbstractDataSet 
{ 
    /** 
    * @var array 
    */ 
    protected $tables = array(); 

    /** 
    * @param array $data 
    */ 
    public function __construct(array $data) 
    { 
     foreach ($data AS $tableName => $rows) { 
      $columns = array(); 
      if (isset($rows[0])) { 
       $columns = array_keys($rows[0]); 
      } 

      $metaData = new PHPUnit_Extensions_Database_DataSet_DefaultTableMetaData($tableName, $columns); 
      $table = new PHPUnit_Extensions_Database_DataSet_DefaultTable($metaData); 

      foreach ($rows AS $row) { 
       $table->addRow($row); 
      } 
      $this->tables[$tableName] = $table; 
     } 
    } 

    protected function createIterator($reverse = FALSE) 
    { 
     return new PHPUnit_Extensions_Database_DataSet_DefaultTableIterator($this->tables, $reverse); 
    } 

    public function getTable($tableName) 
    { 
     if (!isset($this->tables[$tableName])) { 
      throw new InvalidArgumentException("$tableName is not a table in the current database."); 
     } 

     return $this->tables[$tableName]; 
    } 
} 
?> 

回答

0

似乎是版本衝突/安裝問題。

梨版本應該產生1.9.4 ..如果沒有梨升級,並按照命令,直到它。

然後sudo pear install --force --alldeps phpunit/phpunit修復安裝。+

include路徑應該包括 「梨」 目錄。使用pear config-show來查找。

原創:"Fatal error: Call to undefined method PHPUnit_Util_Filter::addfiletofilter() in /usr/bin/phpunit on line 48"

+0

我安裝phpunit的作曲家。我仍然可以這樣做。我真的很想知道這行代碼的用途。我可以評論一下嗎? – Hao

+0

我認爲核心問題可能是版本不匹配。您應該嘗試升級到更新/更近的位置,或者使用匹配的文檔。 –

+0

也許我錯了升級。這裏他們說這已經被淘汰了:http://stackoverflow.com/questions/11746212/how-to-write-custom-phpunit-assertion-that-behaves-like-built-in-assertion/11769835#11769835無論如何版本不匹配似乎很可能。 –

相關問題