我可以将 PHPUnit 打包为 phar 吗?

2023-11-26

我想将 PHPUnit 和各种其他测试依赖项打包到 phar 中并将其放入 svn 中。这样我就可以在任何客户端机器上运行 phpunit,而不需要 pear。这可以做到吗?


当前状态:

phpunit.phar 的工作已开始于phpunit repo但生成的 phar 不稳定且功能不完整。

如果到达那里将会有正式版本


原答案:

如果可以的话,我会给你 500 代表,100 雄鹿和我的第一个孩子......好吧不......只是前两个。

严肃地说:

我已经在至少 3 个会议上就这个话题向 PHPUnit 的创建者抱怨过,但是……这似乎是不可能的。

这有几个问题。首先,PHPUnit 生成新的 php 进程以进行测试隔离。问题是 Phar 无法分辨哪个 php 可执行文件调用了它。因此,如果您使用自定义编译版本启动 phpunit,它将使用安装的“默认”php 来生成隔离测试。

其次,据我所知并被告知不可能将图像和 css 等静态文件放入 Phar 中。这使得生成代码覆盖率变得更加困难。这需要在这方面做一些工作。

还有其他问题,我无法准确回忆起与 xDebug 能够为 phars 提供代码覆盖率(以及 phpunit 依赖于不为其自己的代码生成超额等)和其他问题有关的问题。

There once was a phar但根据我的理解,这对于 phpunit 的当前状态来说是行不通的,而且永远不会really完全有效。


我并不是说这是不可能的,只是很多人已经放弃了创建 phpunit.phar ,包括开发它的人。 (这只是我的印象,我当然不能在这里代表塞巴斯蒂安,可能完全错误,将此作为一个小小的免责声明)

将 PHPUnit 放入 SVN

您不必构建 .phar 即可执行此操作!

对于我的公司,我维护 PHPUnit 的 svnd 版本。这不是推荐的使用方式,但它的工作原理没有太多问题!

跟着"using from a git checkout"phpunit github 站点上的说明。然后你需要将这些文件放入你的 php include 路径中,它就可以工作了。

我的建议是创建一个自定义 phpunit.sh 来修改包含路径,然后调用原始 phpunit.sh 传递所有参数。这需要一点工作,但效果很好,而且比创建 phar 存档要容易得多:)

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

我可以将 PHPUnit 打包为 phar 吗? 的相关文章

  • 使用 WordPress 中的钩子在帖子更新(自定义帖子类型)后获取更新值

    我想获得更新后操作的最新更新值 我已经使用了 save post post updated publish post挂钩但全部返回旧值 但我同时需要当前更新值 我试过下面的代码 add action post updated wpse634
  • PHP文件上传错误tmp_name为空

    我的文件上传遇到这个问题 我尝试在检查验证时上传 PDF 文件TMP NAME是空的 当我检查时 FILES document attach error 该值为 1 意味着存在错误 但当我尝试上传其他 PDF 文件时 它已成功上传 为什么其
  • 使用正则表达式、PHP 解析日志文件

    我对正则表达式非常糟糕 谁能帮我解决我需要的表达式 以便从日志文件中分离出我需要的两个值 日志文件示例 1 28 2013 8 43 22 PM Removed 178 76 234 41 1 28 2013 8 43 22 PM Remo
  • 准备好的语句什么时候会失败? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在搞乱MySQLi对象在PHP 并且习惯于在执行语句之前准备语句 到目前为止 我主要做了以下事情 if stmt mysqli
  • INET6_ATON 的替代 MySQL 代码

    将旧的 INET ATON 值转换为新的二进制 INET6 ATON 值 无需 INET6 ATON INET6 NTOA 我们在表中已有数据 字段类型为UNSIGNED INT其中保存了使用以下命令创建的 IPv4 数据INET ATON
  • Joomla 模型视图控制器 (MVC) 如何工作?

    我是 Joomla 的新手 我想知道 Joomla 控制器如何将数据传递给模型 模型传递给控制器 以及控制器传递给视图 虽然这可能是一个愚蠢的问题 但我确实试图找到答案 我希望我能从 stackoverflow 大家庭得到一些帮助 控制器获
  • openssl_pkey_get_public 未打开公钥,“无起始行”错误

    当生成公钥然后用函数读取它时openssl pkey get public publicKeyResource bool false 和消息 错误 0906D06C PEM 例程 PEM read bio 无起始行 privateKey o
  • 防止刷新时提交双重表单

    我有一个简单的问题 我知道当用户使用 Post Redirect Get 模式重新加载页面时 我可以防止表单重新提交自身 但我的问题是 如果我将用户重定向回提交表单的同一页面 这种模式是否有效 我的意思是 我不想将用户重定向到另一个页面 请
  • CodeIgniter:将参数从视图传递到控制器?

    编辑 现在使用下面的代码 我不确定如何正确打印书签和标签 我对 CI 完全陌生 最近遇到了障碍 我非常不确定如何将函数参数从视图文件传递到控制器 以便我可以在函数上使用它 我在视图上有一个 foreach 循环 遍历函数 get lates
  • 如何将 PHP 会话数据保存到数据库而不是文件系统中?

    我有两个网站 一个是 TLS 一个不是 两个都适用于同一个客户端 但我需要这些网站彼此 并且仅彼此 共享通用数据users orders accounts etc 这通常可以通过以下方式完成 SESSION数据 但我显然这些不能跨其他站点工
  • PHP邮件发送附件但附件为空

    基本上 我正在尝试通过 PHPMail 发送 PDF 电子邮件已发送 我在 Outlook 中完美收到 问题是附件已损坏并且无法打开 我什至尝试发送 HTML 但也是空的 我尝试在论坛中进行研究 尝试了几个 工作代码 其他人让它与此代码一起
  • 是否可以使用 php 中的 C++ 二进制文件

    是否可以编写一些 C 或 C 代码并编译为二进制文件 然后将这些二进制文件与 php 一起使用 是否也可以使用 C 和 C 编写 php 库 如果是这样 请告诉我该怎么做 PHP 在设计上是模块化的 它由 引擎 和许多扩展组成 其中一些是必
  • PHP 从表行中检索数据并将其存储到变量

    我想这些问题已经说明了一切 我的查询结果会生成与条件匹配的行 我想从每个表列中获取每个数据并将其放入一个变量中 getinfo select user firstname user middlename user lastname from
  • 使用 Doctrine2 时的多重歧视级别

    我正在使用 Doctrine2 来管理我的模型 如下 有一个抽象概念Content与复合模式Gallery 也是一个抽象概念Media从中Video and Image继承 我的选择是添加鉴别器Content and Media表以便区分G
  • 带有 WCF BadContextToken 的 PHP Soap 客户端

    经过几天的谷歌 in 尝试 脱发 我仍然找不到解决方案 所以请帮助 简短信息 我需要使用 PHP SOAP 客户端 的 WCF 服务 它使用 wsHttpBinding ws security 并且无法设置 basicHttpBinding
  • CakePHP 后退和前进按钮没有布局

    我们正在 CakePHP 中构建一个大型 CMS 并集成了 Croogo 安装 我们最近遇到了一个问题 当用户单击back在浏览器中 或forward按钮 您最终得到的是使用以下命令的视图 ctp 文件blank布局 所以没有样式 js 等
  • 无法识别 php 变量

    我在两个文件中分别有以下代码 文件一 php
  • 过滤两个类别的产品集合 Magento 1.7

    我想要获取包含 A 类或 B 类产品的产品集合 我已经能够使用以下 php 代码成功获取这些产品 collection Mage getModel catalog product gt getCollection gt joinField
  • regex php - 查找 div 中具有特定 ID 的内容

    我确信这是一个简单的问题 尽管我在谷歌上进行了如此多的搜索和搜索 但我似乎无法弄清楚这有什么问题 我在此页面上的其他区域使用类似的表达式来准确返回我想要的内容 但是 我无法让这个特定的位返回我想要的东西 所以也许有人可以帮助我 我有一个带有
  • 将变量从 PHP 传递到 JavaScript 的有效方法[重复]

    这个问题在这里已经有答案了 有时我必须将一些变量从 PHP 传递到 JS 脚本 现在我是这样做的 var js variable 但这非常丑陋 我无法在 js 文件中隐藏我的 JS 脚本 因为它必须由 PHP 解析 处理这个问题的最佳解决方

随机推荐