phpunit memory_limit 参数不适用

2022-08-30 16:18:23

我刚刚在mac osx 10.7中通过pear安装了phpunit,除了我得到内存限制错误(为报告启用了xdebug)之外,一切都很好。

我试图将参数添加到phpunit,但它不适用,因为在第一个错误中,我添加并打印了字符串(3)“32M”-d memory_limit=512Mvar_dump(ini_get('memory_limit')); exit;

那么,为什么它没有被应用呢?

除此之外,如果我跑步

php -d memory_limit=256M -r "echo ini_get('memory_limit');"

它呼应“256M”

有没有可能 phpunit 没有执行相同的 php?


答案 1

对于那些到达此线程并需要获取配置文件配置的用户:phpunit.xml

<php>
  <ini name="memory_limit" value="512M" />
</php>

有关“设置 PHP INI 设置、常量和全局变量”部分的更多信息,请参阅 https://phpunit.de/manual/6.5/en/appendixes.configuration.html


答案 2

是的,您可以使用 设置每个php选项,该选项都可以用.phpunit -dini_set

你已经在phpunit错误跟踪器中打开了一个错误,但是好吧,我在这里寻找更详细的答案

重现以显示它通常有效:

echo "<?php var_dump(ini_get('memory_limit')); " > foo.php

phpunit -d memory_limit=12M --bootstrap foo.php 

生产:

string(3) "12M"
PHPUnit 3.6.5 by Sebastian Bergmann.

但是 phpunit 只在运行第一个测试之前应用此选项一次!

因此,您的代码很可能在某个地方将内存限制更改回phpunit无法“修复”的内容。32M

在文件中设置内存限制也是如此。phpunit.xml


推荐