6

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

4

2 回答 2

7

当前状态:

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 的当前状态,并且从未真正完全有效。


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

将 PHPUnit 放入 SVN

您不必为此构建 .phar !

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

按照"using from a git checkout"phpunit github 站点上的说明进行操作。然后,您需要将这些文件放入您的 php 包含路径中,并且它可以工作。

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

于 2011-09-06T20:40:14.340 回答
1

从新的PHPUnit 页面

我们分发了一个 PHP 存档 (PHAR),其中包含您使用 PHPUnit 所需的一切。只需从此处下载,使其可执行,然后将其放入您的 $PATH 中,例如......

于 2015-08-12T17:05:47.820 回答