我可以将PHPUnit打包为phar吗?

时间:2011-09-06 17:50:02

标签: php phpunit phar

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

2 个答案:

答案 0 :(得分:7)

当前状态:

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

如果它到达那里将有官方发布


原始答案:

如果你能给我500个代表,100个雄鹿和我的第一个出生......那么......就是前两个。

要认真:

我已经在至少3次会议上唠叨PHPUnit的创建者关于这个话题现在好了......看起来似乎不太可能。

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

其次据我所知并且被告知不可能将像图像和css这样的静态文件放在phar中。这使得生成代码覆盖更加困难。这需要一些工作。

还有其他一些我无法回想起的问题,正好与xDebug能够为phars提供代码覆盖(以及phpunit依赖于不为其自己的代码生成overage等)以及其他事情。

There once was a phar但是根据我的理解,这与phpunit的当前状态无关,而且真的完全没有工作。


我并不是说不可能只是因为各种各样的人已经放弃了创建一个phpunit.phar,包括如何开发它的人。 (这只是我的印象,我当然不能在这里代表塞巴斯蒂安而且可能完全错了,把它作为一个小小的免责声明)

将PHPUnit放入SVN

您不必构建.phar就可以了!

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

关注"using from a git checkout" instructions on the phpunit github site。然后,您需要将这些文件放入php include路径中,然后才能正常工作。

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

答案 1 :(得分:1)

来自new PHPUnit page

  

我们分发一个PHP Archive(PHAR),其中包含您使用PHPUnit所需的一切。只需从here下载它,使其可执行,并将其放入$ PATH,例如......