我正在尝试在虚拟Ubuntu 12.04(64位服务器)安装上通过HHVM运行PHPUnit单元测试。测试通常使用位于我的tests目录中的phpunit.xml文件运行,该文件包含一个用于处理自动加载的引导文件,并且测试在普通的php安装上运行良好。但是,我一直在:
HipHop Fatal error: File not found: File/Iterator/Autoload.php in /usr/share/php/PHPUnit/Autoload.php on line 64
运行时:
hhvm -f /usr/bin/phpunit /path/to/my/testsDirectory/SomeTest.php
我无法弄清楚如何使用bootstrap或配置文件在hhvm下运行phpunit ...任何帮助都将不胜感激。
答案 0 :(得分:11)
HHVM 2.4.0只是released,它带有完整的phpunit支持!只需给出phpunit二进制文件的完整路径,如下所示:
$ hhvm /usr/bin/phpunit
干杯!
从HHVM wiki测试了这一步骤指南并且它有效。这是一个简化的指南:
在项目中,将以下条目添加到composer.json文件中:
"require-dev": {
"phpunit/phpunit": "3.7.*",
"phpunit/php-invoker": "1.1.3",
"phpunit/dbunit": "1.2.3",
"phpunit/phpunit-selenium": "1.3.2",
"phpunit/phpunit-story": "1.0.2"
}
运行hhvm composer.phar install --dev
。如果您进行了作曲家系统广泛安装,请运行hhvm /usr/local/bin/composer install --dev
,它也可以。
将创建供应商目录。 phpunit“binary”将位于vendor/bin/phpunit
为您的项目运行PHPUnit:hhvm vendor/bin/phpunit [optional arguments]
注意:可能在不久的将来
hhvm /usr/local/bin/phpunit [optional arguments]
将按预期工作,但现在这是 我们最简单的选择
答案 1 :(得分:5)
添加到@cabbey的asnwer的注释:您可以使用IncludeSearchPaths
选项设置-v
值:
hhvm -v Server.IncludeSearchPaths.share=/usr/share/php/ $(which phpunit) MyTests.php
答案 2 :(得分:1)
一个简单的解决方法是配置HHVM以在其搜索路径中包含PEAR库。
我将它添加到我的config.hdf的服务器部分:
IncludeSearchPaths {
forphpunit = /usr/lib/php/
}
然后运行phpunit:
hhvm -c ~/config.hdf /usr/bin/phpunit --bootstrap bootstrap.php MyTests.php