Xdebug 断点总是有效,除非使用 @runTestsInSeparateProcesses 时?

2023-11-29

我终于让 Xdebug 可以工作(包括断点和“跳过”的能力)来进行单元测试、功能测试以及在浏览器中进行浏览。

然而,每当我使用@runTestsInSeparateProcesses因为这个原因,Netbeans 断点不再起作用。

如何在使用 Xdebug 的测试中使用 Xdebug 断点@runTestsInSeparateProcesses?

我在 Windows 10 版本 1607 内部版本 14393.0 上使用 Netbeans 8.2。 PHPUnit 5.7.21。

我正在运行 Laravel 5.4 Homestead(即 Vagrant 1.9.5),这意味着我的服务器是 Ubuntu 16.04.2 LTS(GNU/Linux 4.4.0-66-generic x86_64)。


您需要将 xdebug 配置添加到 php.ini 中,以便 phpunit 再次调用 php-interpreter(b/c@runTestsInSeparateProcesses)以在单独的进程中运行测试,并加载 xdebug 自动激活(远程调试设置等),无需传递给可执行文件的任何其他参数。

如果您已经完成了此操作(您的问题可能并非如此),请确保您的 IDE 接受多个 xdebug 连接(xdebug 连接限制或类似连接)。这是必要的,因为新的 PHP 进程将启动需要额外连接的新 xdebug 远程会话。如果该连接未满足,xdebug 将等待,因此连接限制为一 (1),例如,您将看到 PHP 挂起。

这种方法的缺点是 xdebug 将始终被加载,这将添加 ca.在 CLI 中执行的 PHP 性能提高 10%。

就开发盒而言,您可以自己创建一些脚本,运行该脚本来打开和关闭已安装的 PHP 二进制文件的 xdebug 默认配置。

Composer 不受此影响,因为它将在禁用 xdebug 的情况下重新启动自身,但大多数其他 PHP cli 工具不会执行此操作(并且可能不需要它,因为有如此多的可用性能,并且可以忽略该缺点。这对于执行大量对象创建等操作的 PHP 脚本来说非常重要)。

因此,设置 php.ini 并启用 xdebug。一个好的 IDE 会显示它自动添加的设置(PHP cli-d选项),只需将这些添加到您的php.ini你应该适合这个测试场景。

当您让它工作时,请考虑如何动态禁用设置(sed对此很方便,尤其是-i[就地编辑]在 GNU 系统上,Stackoverflow 应该让您对这里的基础知识感到满意,对于 Windows,我不能说什么是工作良好的,以防您想知道)。

附加说明:我不能具体说 Netbeans,因为我不使用它,但对于 Phpstorm,这完全一样(我善意地假设),因为它在调用测试(调试、覆盖率)时将 xdebug 添加到 PHP 配置中),并产生导致其他 PHP 脚本无法调试的子进程,除非我将添加的 xdebug 配置放入php.ini.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xdebug 断点总是有效,除非使用 @runTestsInSeparateProcesses 时? 的相关文章

  • 在 Ubuntu 16.04 中创建虚拟主机

    我已经开始在 laravel 中工作并使用 lampp 我看过很多使用虚拟主机来制作用户友好的 url 的教程 我想在 Ubuntu 16 04 上执行此操作 以下教程对我不起作用 https ourcodeworld com articl
  • Netbeans 8 和 xdebug 非常非常慢

    我读过有关此问题的其他帖子 但我无法在本地 Web 服务器 Windows 7 上的 apache 2 4 9 php 5 5 12 上使用 xdebug 2 2 5 和 netbeans 8 0 1 获得令人满意的性能 有些页面加载时间超
  • 区分 Web 路由调用与 API 路由调用?

    In my web php文件中 我有一条如下所示的路线 Route get HomeController getFeed 而在我的api php文件中 我有一条如下所示的路线 Route get feeds HomeController
  • Laravel 5.4 密码重置

    我有一个 Laravel 5 4 应用程序 我的管理区域中有一个视图 允许我查看所有用户 我想创建一个功能 允许我单击后端的按钮 自动发送默认 Laravel 密码重置功能的过程 在我看来 我有以下几点 table class table
  • netbeans - 调试器退出,代码为 0xc0000135

    我需要在 netbeans 中安装调试器 我已经在 mingw bin 目录中安装了 gdbmingw get exe install gdb 我已经添加了该行C MinGW bin gdb exe 但是 当我运行调试器时 它会给出以下消息
  • 在资源中找到未签名的条目....jar

    我正在使用 Netbeans 来编译和签署我的所有 jar 所有这些都使用相同的证书 但是 当我使用 Sun Java SE 6 运行 Webstart 时 出现错误 Found unsigned entry in resource jar
  • 使用 Laravel Fluent 查询生成器从多个表中进行选择

    我正在重写一些 PHP MySQL 来与 Laravel 一起使用 我想做的一件事是使数据库查询更加简洁使用 Fluent 查询生成器 http laravel com docs database fluent但我有点迷失 SELECT p
  • 在 netBeans 中运行程序时,字体看起来非常奇怪

    我在我的新 MacBook M1 上设置了 netBeans 和 SceneBuilder 除了运行程序时的字体外 一切正常 它看起来像这样 我不知道为什么 按钮应显示 Click me 标签应显示 Hello 我收到的错误消息是 M rz
  • Laravel中with()和compact()有什么区别

    功能有什么区别with and compact 在 Laravel 中这两个例子 示例1 return View make books index gt with booksList booksList 示例2 return View ma
  • 多种邮件配置

    我使用 mandrill 驱动程序配置了 laravel 的邮件服务 这里没有问题 现在 在我申请的某个时刻 我需要通过 gmail 发送邮件 我做了类似的事情 backup current mail configs backup Conf
  • Laravel 中的支付网关回调时会话会自动销毁

    我正在尝试将 CCavenue com 支付网关集成到我的 Laravel 7 项目中 我面临的唯一问题是在回调 url 中 从支付网关获取发布数据后 活动会话会自动销毁 我还向中间件添加了 CSRF 例外 PayController 生成
  • 我可以更改 Route-Model-Binding 的解析逻辑以始终小写字符串键吗?

    我在 Laravel 5 7 项目中使用 UUID 键 并且效果非常好 当通过路由从数据库请求项目时 将查找键并将其作为字符串进行比较 当请求发送大写的 uuid 字符串时 路由模型绑定将找不到模型 因为 Laravel 的 UUID 字符
  • Laravel:使用 Faker 播种多个独特的列

    介绍 怎么样 伙计们 我有一个关于模型工厂和多个独特列的问题 背景 我有一个名为 Image 的模型 该模型将语言支持存储在单独的模型中 图片文字 图片文字 has an image id栏 语言栏和文本栏 图片文字有一个约束MySQL那个
  • 使用 Mock 对 Laravel 5 Mail 进行单元测试

    有没有办法在 Laravel 5 中测试 Mail 尝试了我在互联网上看到的唯一合法的模拟示例 但它似乎只适用于 Laravel 4 下面的当前代码 mock Mockery mock Swift Mailer this gt app ma
  • Laravel Schema Builder 改变存储引擎

    我正在尝试更改表并将其存储引擎更改为InnoDb 当我跑步时php artisan migrate它完成且没有错误 然而 当我检查 Sequel Pro 中的存储引擎时 没有任何变化 public function up Schema ta
  • Apache 虚拟主机始终重定向到 /dashboard

    我遇到的问题似乎是一个常见问题 但我找到的任何解决方案似乎都不适合我的情况 我正在尝试设置一个虚拟主机 以便我可以通过 mytestdomain local 访问我的 Laravel 安装的公共文件 但是当我在 google chrome
  • 对更改运行 PHPUnit 测试

    每当磁盘上的文件发生更改时 我想运行 PHPUnit 测试 或至少其中的一个子集 与您可以使用 进行的操作非常相似 咕噜手表 https github com gruntjs grunt contrib watch blob master
  • Laravel Vue js spa 应用程序

    1 我想知道为什么人们使用两台服务器用 laravel 制作 vuejs SPA 我想我们可以用另一种方式 制定这样的路线 Route get any function return view index gt where any 并让 v
  • 用于折叠/展开方法的 NetBeans 快捷键

    这是一个 IDE 问题 我总是使用折叠的方法 因为我希望能够一起看到我的方法 这有点耗时 因为我必须使用鼠标向上滚动到方法的声明 然后单击 减号 图标 然后分别转到我想要处理的方法并单击 加号 图标 有没有办法通过键盘快捷键来折叠 以及分别
  • laravel 中哪里可以设置标题

    我想将标题设置为array Cache Control gt no cache no store max age 0 must revalidate Pragma gt no cache Expires gt Fri 01 Jan 1990

随机推荐

  • 自动滚动到页面底部然后顶部并重复

    我创建了一个仪表板 它会回显所有行 但我想要一个自动滚动 它会慢慢地向下滚动到页面底部 然后慢慢地滚动回顶部并重复 我已经用谷歌搜索了这个 但无法获得有效的代码 我一直在寻找 jQuery 代码 但任何东西都可以 因为页面会一直调整 所以不
  • 在 C++ 中从给定的种子生成相同的随机数序列

    我正在使用 mt19937 从给定种子生成随机字符串 如下所示 std string StringUtils randstring size t length uint64 t seed static auto chrs abcdefghi
  • 单击react-native中的菜单项时如何打开页脚选项卡屏幕之一?

    我正在创建一个反应本机应用程序 现在我想在单击菜单项时打开页脚选项卡屏幕之一 在这里 我附上了我的示例屏幕 可以从中清楚地了解我的问题 这是我的 GitHub 存储库 https github com SidathDananjaya Eve
  • 使用 C++ 编程时,如何在 win32 中创建子窗口?

    我是 C 以及 Windows 编程的新手 我使用 msdn 创建了一个窗口CreateWindow 功能 其工作正常 现在我想创建一个子窗口 父窗口应该控制子窗口 任何有关此的帮助示例代码 提前致谢 粗略地说 在父级的处理程序中 您希望创
  • 数组的元素类型不完整。这是什么意思? [复制]

    这个问题在这里已经有答案了 我想创建一个数组来存储任何整数 n 的乘法值 之后 我想将该数组传递给另一个函数并打印出该数组 但是 我收到以下错误 My code 这是我的 c 文件 include multiplication h incl
  • Windows 上的 LDAP 身份验证

    我安装了 64 位 Windows 平台和 Postgresql 8 4 作为 Apache EnterpriseDB ApachePHP 安装在 Pstgres 上 我需要使用 Active Directory 或 LDAP 凭据对系统进
  • 使用 C# 从另一个表单获取值[重复]

    这个问题在这里已经有答案了 如何从一种形式获取另一种形式的值 我已经尝试过以下方法 但它不起作用 Form1 public TextBox TXT get return txtbox1 Form2 public Form1 frm txtb
  • iOS 中的 UILocalNotification 中不显示操作和类别

    我相信苹果文档中有以下内容here我只需要一个类别UILocalNotification BOOL application UIApplication application didFinishLaunchingWithOptions NS
  • Heroku 项目中带有 Python 模块的 Node 应用程序未安装

    我有一个部署到 Heroku 的 Node Express 服务器 项目 运行良好 但我编写了一个小型 Python 模块 不需要服务器或新的 Heroku 实例 但它需要从 pip 安装一些第 3 方包 我的问题是 虽然 Python 似
  • 如何修复“pandas.core.common”没有属性“AbstractMethodError”?

    我想看看 pandas 对象可用的方法 当我运行此代码时 出现 AttributeError 错误 我已经搜索过 但没有找到此错误的示例或如何修复它 for i in df jobs groupby group failed failed
  • 如何使用 Selenium WebDriver 和 Java 将鼠标悬停在 Web 元素上

    如何使用 Selenium Webdriver 执行鼠标悬停功能 测试用例就像是说 打开雅虎网站 登录旁边有链接 邮件 鼠标悬停时 它将显示工具提示 当我尝试下面的代码时 鼠标不是悬停在确切的位置 而是悬停在其他地方 我哪里出错了 另外让我
  • Java错误:无法对非静态方法进行静态引用

    我正在编写一个 Android 应用程序并收到此错误 但我不知道为什么 有人可以帮助我理解为什么我会收到此错误吗 Cannot make a static reference to the non static method updateS
  • 具有已定义迭代器的 C# for 循环

    我想使用已经定义的迭代器创建一个循环 目前我正在使用 int i while i lt 10 Console Writeline i i 这很丑陋 因为其他人稍后可能会删除 i 如果它和 while 语句被一大块代码隔开 就不清楚它的用途了
  • Android Studio 使用 Java 8 而不是 11

    我尝试导入的应用程序中的 gradle 版本与 JDK11 不兼容 而 android studio 使用 JDK11 作为其嵌入式 JDK 我的机器上有 JDK8 我尝试进入项目结构来更改 JDK8 位置的路径 但如果尝试更改它 则会出现
  • 原型继承的淘汰问题

    我在 Knockout 中遇到了一个问题 我在原型中创建了一个用户对象 其中对象的可观察属性似乎被最后一次出现的情况覆盖 因此我不能多次使用同一个对象 否则它将被覆盖 虽然这很难解释 但请看我的小提琴 http jsfiddle net R
  • 具有端口和工具项(删除、设置等)的 JointJS 元素

    我设法通过端口增强我的 SVG 形状 joint shapes devs Element joint shapes basic Generic extend extend joint shapes basic PortsModelInter
  • 在 HttpModule 内渲染页面?

    有人知道如何在 HttpModule 中渲染 aspx 页面并将其流回浏览器吗 你可以这样做 Type page type BuildManager GetCompiledType page aspx Page page Page Acti
  • 尝试添加新环境时,Aws Beanstalk nginx 被终止

    每次需要从 AWS EBS 面板添加新的环境变量时 我都会收到此错误 AWS Beanstalk 事件 2018 02 16 14 49 21 UTC 0200 INFO The environment was reverted to th
  • 从图像本地目录创建tensorflow数据集

    我在本地有一个非常庞大的图像数据库 数据分布就像每个文件夹都包含一个类的图像 我想使用tensorflow数据集API来获取批量数据 而无需将所有图像加载到内存中 我尝试过这样的事情 def parse function filename
  • Xdebug 断点总是有效,除非使用 @runTestsInSeparateProcesses 时?

    我终于让 Xdebug 可以工作 包括断点和 跳过 的能力 来进行单元测试 功能测试以及在浏览器中进行浏览 然而 每当我使用 runTestsInSeparateProcesses因为这个原因 Netbeans 断点不再起作用 如何在使用