我想将PHPUnit和各种其他测试依赖项打包成一个phar并将其放入svn中。这样我就可以在任何客户端机器上运行phpunit而无需使用pear。可以这样做吗?
答案 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,包括如何开发它的人。 (这只是我的印象,我当然不能在这里代表塞巴斯蒂安而且可能完全错了,把它作为一个小小的免责声明)
您不必构建.phar就可以了!
对于我的公司,我维护了PHPUnit的svnd版本。这不是推荐的使用方式,但它没有太大问题!
关注"using from a git checkout"
instructions on the phpunit github site。然后,您需要将这些文件放入php include路径中,然后才能正常工作。
我的建议是创建一个自定义的phpunit.sh来修改包含路径,然后调用原始的phpunit.sh传递所有参数。这是一个小工作,但它工作得很好,这比创建一个phar档案容易得多:)
答案 1 :(得分:1)
我们分发一个PHP Archive(PHAR),其中包含您使用PHPUnit所需的一切。只需从here下载它,使其可执行,并将其放入$ PATH,例如......