phpunit.xml指向哪里?

时间:2013-05-27 14:08:40

标签: php zend-framework phpunit

我正在拼命尝试使用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失败...

提前感谢您的帮助

1 个答案:

答案 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>

请注意:

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

  2. “白名单”应用程序目录是上层的应用程序目录 - 即与tests目录位于同一位置。

  3. .phtml个文件和“运行时”Bootstrap.php被排除在外。

  4. 您还应该拥有测试数据库,因为某些测试会记录删除/插入/更新数据。在您的情况下,“testsuite”标记确实指向tests目标,前提是phpunit.xml位于该目录中。