为 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/