为 PHP 设置白名单时遇到以下问题:
我在 phpunit xml 中设置了以下过滤器:

<filter>
    <whitelist>
        <directory suffix=".php">../..</directory>
        <exclude>
            <directory>../../cache</directory>
            <directory>../../public_html</directory>
            <directory>../../temp</directory>
            <directory>../../tools</directory>
        </exclude>
    </whitelist>
</filter>
没有那个白名单,一切正常,但是当我把它放进去时,系统崩溃了,因为它试图包含所有文件。这使得它包含一个具有 require_once 的文件,从而使应用程序崩溃。
编辑 在启动时系统定义一些常量。由于在包含创建白名单的所有数据时未定义这些常量,因此它会尝试访问不存在的文件夹(PHP 假定常量是字符串),因此 require_once 失败,并且假定它是一个要求,它崩溃了。
此外,如果有任何帮助,白名单正用于将它与 Selenium 一起使用。也许这就是问题的根源?

最佳答案

好吧,为了收集代码覆盖率信息,系统有点 必须 需要所有文件,以便这是预期的行为。 (从技术上讲,它不必,但确实如此)

如果您使用的是 require_once,那应该不是问题,因为 phpunit 还使用 "_once" 来要求文件。

我们在充满 require_once 语句的代码库上使用白名单,我遇到的唯一问题是在两个地方定义了一个类。

关于php - 在 PHPUnit 中设置白名单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6423947/

10-12 04:51