【问题标题】:Behat with PhpStorm does not show stack trace for exceptions带有 PhpStorm 的 Behat 不显示异常的堆栈跟踪
【发布时间】:2023-03-17 05:20:01
【问题描述】:

我刚刚开始使用 Behat 3.0 和 PhpStorm 8.0。

一切正常,除了异常,PhpStorm 中没有显示堆栈跟踪。测试只是失败,没有关于失败发生位置的反馈。

如果我在终端中使用 Behat,可以看到堆栈跟踪以及异常的文件和行号。

我尝试使用 --strict 和 --verbose 在 PhpStorm 中运行 Behat,但仍然没有任何乐趣。

看起来 PhpStorm 使用它自己的 Behat 格式化程序 (PhpStormBehatFormatter) 来显示结果,所以我 99% 确定解决方案将是修改它(我认为只有 PhpStorm 可以这样做)。

只是想看看其他人是否有同样的问题,是否有临时解决办法?

注意:这是非常具体的 Behat / PhpStorm 问题。除非您知道这两种工具,否则最好不要回答。诸如“创建自定义异常处理程序”之类的答案无济于事。

【问题讨论】:

  • 如果从命令行对功能文件运行 behat 会发生什么?还要检查运行目录中的 php.error 文件。 PHP 静默失败很难追踪。我有时不得不使用strace 之类的东西来解决这个问题(通常是一个糟糕的嵌套包含)。
  • 在命令行中运行时显示异常,使用 --verbose 运行时显示完整堆栈跟踪。这就是为什么我认为它与 PhpStormFormatter 有关系

标签: php phpstorm behat


【解决方案1】:

因此,自从提出这个问题以来的 5 年多时间里,PHPStorm 已经实现了它所需要的功能,但您仍然需要知道完全神秘的 Behat 命令行选项,以及将它放在哪里。无论如何,这就是绝望的谷歌搜索让我找到的地方,所以让我把答案放在这里。

运行 菜单下,编辑配置...,选择 Behat 模板,然后在 Test Runner 选项中 strong> 字段,输入-vv

然后您的 Behat 失败将显示完整的错误消息和堆栈跟踪。

【讨论】:

    【解决方案2】:

    是的,been there, done that... JetBrains 的人都知道这一点,但尚未设置修复版本。对问题进行投票,这将加快速度。

    【讨论】:

    • 啊完美!我没有意识到有这样一个专门的问题日志页面。非常便利。我已经投票并发表了评论。
    猜你喜欢
    • 2014-01-24
    • 1970-01-01
    • 2010-10-16
    • 2011-01-05
    • 2017-08-09
    • 2016-01-11
    相关资源
    最近更新 更多