2013-05-27 96 views
0

我拼命嘗試使用Zend Framework 1.11工作PHPUnit。在我的phpunit.xml中,我需要確定它指向的位置。phpunit.xml指向哪裏?

<phpunit bootstrap="./bootstrap.php" colors="false"> 
    <testsuite name="ApplicationTestSuite"> 
     <directory>./application</directory> 
     <directory>./library/</directory> 
    </testsuite> 
    <filter> 
     <whitelist> 
      <directory suffix=".php">../application</directory> 
      <directory suffix=".php">../library/</directory> 
      <exclude> 
       <directory suffix=".phtml">../applications/views</directory> 
       <file>../applications/Bootstrap.php</file> 
      </exclude> 
     </whitelist> 
    </filter> 
    <logging> 
     <log type="coverage-html" target="./log/coverage" charset="UTF-8" 
      yui="true" highlight="false" lowUpperBound="35" highLowerBound="70"/> 
    </logging> 
</phpunit> 

這一切:

./Application 
./library 
../application/Bootstrap.php 

指向測試目錄,而不是應用程序目錄,對不對?

因爲我一直有一個致命錯誤:require_once:無法開口要求controllerTestCase.php ...

在此先感謝您的幫助

回答

1

首先,你可以有不同的Bootstrap.php文件 - 一個用於運行應用程序通常和一個用於測試它。 在Application目錄的級別創建一個tests目錄。您的phpunit.xml將駐留在該新目錄中。這是tests目錄的內部可能是什麼樣子:

./Application/ 
./Application/Bootstrap.php 
./Application/ExampleControllerTestCase.php 
./log/ 
./phpunit.xml 

而且你phpunit.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<phpunit bootstrap="./Application/Bootstrap.php" colors="true"> 
    <testsuite name="ExampleTests"> 
     <directory>./Application</directory> 
    </testsuite> 

    <filter> 
     <whitelist> 
      <directory suffix=".php">../Application/</directory> 
      <exclude> 
       <directory suffix=".phtml">../Application/</directory> 
       <file>../Application/Bootstrap.php</file> 
      </exclude> 
     </whitelist> 
    </filter> 

    <logging> 
     <log type="coverage-html" target="log/" charset="UTF-8" yui="true" hightlight="true" lowupperbound="50" highlowerbound="80"> 
     <log type="testdox" target="log/"> 
    </log></log></logging> 
</phpunit> 

注意:

  1. <phpunit bootstrap="./application/Bootstrap.php" colors="true">指向Bootstrap.php文件在tests/Application/導演。

  2. 「白名單」的應用程序目錄是在較高級別的應用程序目錄 - 即在與tests目錄相同的位置。

  3. .phtml文件和「運行時」Bootstrap.php被排除在外。

由於某些測試需要刪除/插入/更新數據,因此您還應該有測試數據庫。在你的情況下,「testsuite」標籤確實指向tests direcotry,只要phpunit.xml在該目錄中。