我正在拼命尝试使用Zend Framework 1.11开发PHPUnit。在我的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失败...
提前感谢您的帮助
答案 0 :(得分:0)
首先,您可以拥有不同的Bootstrap.php
个文件 - 一个用于正常运行应用程序,另一个用于测试它。
在 tests
目录的级别创建一个Application
目录。您的phpunit.xml
将驻留在该新目录中。这就是tests
dir的内部结构:
./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>
请注意:
<phpunit bootstrap="./application/Bootstrap.php" colors="true">
指向Bootstrap.php
导演中的tests/Application/
文件。
“白名单”应用程序目录是上层的应用程序目录 - 即与tests
目录位于同一位置。
.phtml
个文件和“运行时”Bootstrap.php
被排除在外。
您还应该拥有测试数据库,因为某些测试会记录删除/插入/更新数据。在您的情况下,“testsuite”标记确实指向tests
目标,前提是phpunit.xml
位于该目录中。