【发布时间】:2017-11-12 11:50:23
【问题描述】:
我有一个 Symfony 3 应用程序,我正在尝试使用 PHPunit 运行功能测试,我在每个测试中加载固定装置。
目前,测试将以 255 的代码静默失败,没有关于失败原因的输出或日志。即使我已经用尽了所有可能的 PHP 配置来尝试让它输出更多信息。
如果我自己运行失败的测试,它会通过。 如果我一次运行整个套件,它将失败。 如果我删除失败的测试,之后的测试仍然会失败。
它通过的唯一方法是使用 --process-isolation 标志,但这会显着减慢测试速度。
相关的 php.ini 配置:
memory_limit = -1
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
log_errors = On
有没有人遇到过类似的问题并且可能知道解决方案?
【问题讨论】:
-
PHPUnit 可能会返回错误代码但没有任何输出。例如,当自动加载器找不到类时,就会发生这种情况。当您将
log_errors选项设置为On时,您应该查看系统日志以查找来自 PHP 的错误消息。 -
log_errors 文件中没有任何内容 :(
-
我添加了一个答案,因为我已经遇到了这个问题。
-
需要澄清一下:您写了“测试将静默失败,代码为 255”。说一个测试 failing 意味着测试运行但断言没有被验证。我想你会说“测试套件不会运行返回 255 错误代码并且没有任何输出”。所以,如果你没有得到任何输出,你怎么知道是哪个测试导致了崩溃(正如你所写的“如果我自己运行失败的测试,它会通过。”)?
-
例如:如果我有 20 个测试,PHPUnit 将运行到第 10 个测试并退出 255。如果我删除第 10 个测试,它仍然会在同一点退出 255。跨度>
标签: php symfony unit-testing phpunit