2013-05-27 3 views
0

Я отчаянно пытаюсь сделать работу PHPUnit с Zend Framework 1.11. В моем 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 файлы - один для его запуска приложение обычно и одно для тестирования. Создайте каталог testsна уровне вашегоApplication. Ваш 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. The <phpunit bootstrap="./application/Bootstrap.php" colors="true"> указывает на файл Bootstrap.php в директории tests/Application/.

  2. Каталог приложений «белого списка» находится на верхнем уровне, то есть в том же положении, что и каталог tests.

  3. .phtml Файлы и "runtime" Bootstrap.php исключены.

У вас также должна быть база данных тестирования, так как некоторые тесты требуют удаления/вставки/обновления данных. В вашем случае тег «testsuite» указывает на tests directcotry при условии, что phpunit.xml находится в этом каталоге.

Смежные вопросы